/* 2026-08-26: Unified public-site CSS; standardized high-contrast text, button roles, boundary treatment, forms, and responsive behavior. */
html[data-theme="dark"] {
  --fs-bg: #0b0c0e;
  --fs-surface: #121417;
  --fs-surface-2: #191c20;
  --fs-ink: #fff;
  --fs-muted: #fff;
  --fs-line: #3d4147;
  --fs-red: #a6281e;
  --fs-red-bright: var(--fs-red);
  --fs-shadow: #0000009e;
  color-scheme: dark;
}

html[data-reading="large"] {
  --fs-reading-increment: 0.12rem;
}

html[data-reading="largest"] {
  --fs-reading-increment: 0.24rem;
}

* {
  box-sizing: border-box;
}

html {
  --fs-reading-increment: 0rem;
  scroll-behavior: smooth;
  overscroll-behavior-y: auto;
}

body {
  background: var(--fs-bg);
  color: var(--fs-ink);
  margin: 0;
  font-family:
    Inter,
    ui-sans-serif,
    system-ui,
    -apple-system,
    BlinkMacSystemFont,
    Segoe UI,
    sans-serif;
  font-size: calc(17px + var(--fs-reading-increment));
  line-height: 1.65;
}

a {
  color: inherit;
  text-underline-offset: 0.22em;
  text-decoration-thickness: 0.08em;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 3px solid var(--fs-red-bright);
  outline-offset: 4px;
}

html[data-theme="dark"]
  :is(a, button, input, select, textarea):focus-visible {
  outline-color: #fff;
}

.skip-link {
  z-index: 100;
  color: #000;
  background: #fff;
  padding: 0.7rem 1rem;
  position: absolute;
  top: -6rem;
  left: 1rem;
}

.skip-link:focus {
  top: 1rem;
}

.fs-shell-menu {
  width: 56px;
  height: 52px;
  color: var(--fs-ink);
  cursor: pointer;
  background: none;
  border: 0;
  flex: 0 0 56px;
  padding: 0 9px;
  display: block;
}

.fs-shell-menu > span {
  gap: 6px;
  width: 100%;
  display: grid;
}

.fs-shell-menu > span > span {
  background: currentColor;
  border-radius: 2px;
  height: 4px;
  transition:
    transform 0.2s,
    opacity 0.2s;
  display: block;
}

.fs-shell-wordmark {
  letter-spacing: -0.03em;
  min-width: 0;
  margin-right: auto;
  line-height: 0.95;
  text-decoration: none;
  display: inline-grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto auto;
}

.fs-shell-wordmark span {
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--fs-ink);
  font-size: 0.76rem;
  font-weight: 900;
  grid-column: 1;
  grid-row: 1;
}

.fs-shell-wordmark strong {
  color: var(--fs-ink);
  font-weight: 900;
  font-size: 1.4rem;
  grid-column: 1;
  grid-row: 2;
}

.fs-shell-actions {
  align-items: center;
  gap: 0.55rem;
  display: flex;
}

.fs-shell-prayer {
  border: 1px solid var(--fs-red);
  background: var(--fs-red);
  color: #fff;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  place-items: center;
  min-height: 44px;
  padding: 0.55rem 0.85rem;
  font-size: 0.74rem;
  font-weight: 900;
  text-decoration: none;
  display: grid;
}

.fs-shell-prayer:is(:hover, :focus-visible),
.fs-shell-prayer[aria-current="page"] {
  background: var(--fs-red-bright);
  color: #fff;
}

.fs-shell-masthead[data-menu-open="true"] .fs-shell-nav {
  flex-direction: column;
  animation: 0.16s ease-out fs-shell-pop;
  display: flex;
}

.fs-shell-nav a {
  border-bottom: 1px solid var(--fs-line);
  letter-spacing: 0;
  border-radius: 0;
  min-height: 44px;
  padding: 0.72rem 0.85rem;
  font-size: 0.88rem;
  font-weight: 700;
  line-height: 1.25;
  text-decoration: none;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  display: flex;
}

.fs-shell-nav a:last-child {
  border-bottom: 0;
}

.fs-shell-nav > a > span {
  min-width: 0;
}

.fs-shell-nav > a > small {
  color: var(--fs-muted);
  margin-left: auto;
  font-size: 0.66rem;
  font-weight: 700;
  white-space: nowrap;
}

.fs-shell-nav > a[data-nav-break] {
  border-top: 2px solid var(--fs-ink);
  margin-top: 0.45rem;
}

.fs-shell-nav a:is(:hover, :focus-visible) {
  background: var(--fs-surface-2);
  color: var(--fs-ink);
  outline: 0;
}

.fs-shell-nav a[aria-current="page"] {
  background: var(--fs-surface-2);
  color: var(--fs-ink);
  outline: 0;
  border-left: 3px solid var(--fs-red-bright);
}

.fs-shell-nav [data-shell-identity] {
  border-bottom: 1px solid var(--fs-line);
  background: var(--fs-surface-2);
  min-height: 62px;
  padding: 0.7rem 0.85rem;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  display: flex;
}

.fs-shell-nav [data-shell-identity] span,
.fs-shell-nav [data-shell-identity] strong,
.fs-shell-nav [data-shell-identity] small {
  display: block;
}

.fs-shell-nav [data-shell-identity] strong {
  font-size: 0.84rem;
  font-weight: 800;
}

.fs-shell-nav [data-shell-identity] small {
  color: var(--fs-muted);
  margin-top: 0.1rem;
  font-size: 0.68rem;
}

.fs-shell-nav [data-shell-identity] > a {
  border: 0;
  color: var(--fs-red);
  min-height: 44px;
  padding: 0.5rem 0.65rem;
  font-size: 0.76rem;
  font-weight: 800;
}

@keyframes fs-shell-pop {
  from {
    opacity: 0;
    transform: translateY(-5px) scale(0.985);
  }
}

.fs-shell-rail {
  z-index: 40;
  position: fixed;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
}

.fs-shell-rail-toggle {
  z-index: 2;
  color: #fff;
  cursor: pointer;
  background: var(--fs-red);
  border: 1px solid #fff3;
  border-right: 0;
  border-radius: 18px 0 0 18px;
  place-items: center;
  width: 58px;
  height: 58px;
  padding: 0;
  transition: transform 0.24s;
  display: grid;
  position: absolute;
  bottom: 0;
  right: 0;
  box-shadow: 0 14px 38px #00000057;
}

.fs-shell-rail-toggle svg {
  fill: none;
  stroke: currentColor;
  stroke-width: 2px;
  stroke-linecap: round;
  width: 24px;
  height: 24px;
}

.fs-shell-rail-toggle:is(:hover, :focus-visible) {
  outline-offset: -3px;
  background: var(--fs-red);
  outline: 2px solid #fff;
}

.fs-shell-rail[data-expanded="true"] .fs-shell-rail-toggle {
  visibility: hidden;
  pointer-events: none;
  transform: rotate(45deg) scale(0.72);
}

.fs-shell-tools {
  transform-origin: 100%;
  background: #111318;
  border: 1px solid #ffffff1f;
  border-right: 0;
  border-radius: 18px 0 0 18px;
  flex-direction: column;
  width: 78px;
  max-height: calc(100svh - 24px);
  transition:
    opacity 0.22s,
    transform 0.28s cubic-bezier(0.2, 0.8, 0.2, 1),
    visibility 0.22s;
  display: flex;
  overflow: hidden;
  box-shadow: 0 18px 52px #00000057;
}

.fs-shell-rail[data-expanded="false"] .fs-shell-tools {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(10px) scale(0.1);
}

.fs-shell-rail[data-expanded="false"] {
  pointer-events: none;
}

.fs-shell-rail[data-expanded="false"] .fs-shell-rail-toggle {
  pointer-events: auto;
}

.fs-shell-tools button,
.fs-shell-tools a {
  color: #fff;
  cursor: pointer;
  background: none;
  border: 0;
  border-bottom: 1px solid #ffffff1a;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  width: 100%;
  height: 68px;
  min-height: 68px;
  padding: 7px 4px;
  text-decoration: none;
  display: flex;
}

.fs-shell-tools :is(button, a) > span {
  place-items: center;
  width: 28px;
  height: 26px;
  font-size: 0.94rem;
  font-weight: 900;
  display: grid;
}

.fs-shell-tools svg {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8px;
  stroke-linecap: round;
  stroke-linejoin: round;
  width: 21px;
  height: 21px;
  display: block;
}

.fs-shell-tools small {
  letter-spacing: 0.035em;
  font-size: 0.59rem;
  font-weight: 800;
  line-height: 1.15;
}

.fs-shell-tools [data-rail-action="reading"] {
  --tone: #3b82f6;
  --soft: #3b82f60a;
  --glow: #3b82f64d;
}

.fs-shell-tools [data-rail-action="theme"] {
  --tone: #a855f7;
  --soft: #a855f70a;
  --glow: #a855f74d;
}

.fs-shell-tools [data-rail-action="care"] {
  --tone: #22c55e;
  --soft: #22c55e0a;
  --glow: #22c55e4d;
}

.fs-shell-tools [data-rail-action="safety"] {
  --tone: #facc15;
  --soft: #facc150a;
  --glow: #facc1552;
}

.fs-shell-tools [data-rail-action="privacy"] {
  --tone: #06b6d4;
  --soft: #06b6d40a;
  --glow: #06b6d44d;
}

.fs-shell-tools [data-rail-action="support"] {
  --tone: #ec4899;
  --soft: #ec48990a;
  --glow: #ec48994d;
}

.fs-shell-tools [data-rail-action]:not([data-rail-action="prayer"]) {
  background: linear-gradient(135deg, var(--soft), transparent 62%);
}

.fs-shell-tools [data-rail-action]:not([data-rail-action="prayer"]) > span {
  color: var(--tone);
  filter: drop-shadow(0 0 3px var(--glow));
  transition:
    filter 0.18s,
    transform 0.18s;
}

.fs-shell-tools
  [data-rail-action]:not([data-rail-action="prayer"]):is(
    :hover,
    :focus-visible,
    .active
  ) {
  outline: 2px solid var(--tone);
  outline-offset: -3px;
  background: linear-gradient(
    135deg,
    color-mix(in srgb, var(--tone) 24%, #20242a),
    #20242a 72%
  );
  color: #fff;
}

.fs-shell-tools
  [data-rail-action]:not([data-rail-action="prayer"]):is(
    :hover,
    :focus-visible,
    .active
  )
  > span {
  filter: drop-shadow(0 0 5px var(--glow));
  transform: scale(1.06);
}

.fs-shell-tools .fs-shell-prayer-tool {
  color: #fff;
  background: var(--fs-red);
  border-bottom: 0;
  border-radius: 0 0 0 17px;
  height: 76px;
  min-height: 76px;
}

.fs-shell-tools .fs-shell-prayer-tool:is(:hover, :focus-visible) {
  outline-offset: -3px;
  background: var(--fs-red);
  outline: 2px solid #fff;
}

.fs-shell-footer p {
  margin: 0;
}

.fs-shell-footer nav {
  flex-wrap: wrap;
  gap: 1.2rem;
  display: flex;
}

.fs-shell-footer nav a {
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-size: 0.78rem;
  font-weight: 800;
  text-decoration: none;
}

.fs-shell-footer .fs-shell-fine {
  border-top: 1px solid var(--fs-line);
  grid-column: 1 / -1;
  padding-top: 1.5rem;
  font-size: 0.82rem;
}

.fs-shell-consent {
  z-index: 60;
  border: 1px solid var(--fs-line);
  background: var(--fs-surface);
  width: min(34rem, 100% - 2rem);
  box-shadow: 0 20px 70px var(--fs-shadow);
  padding: 1.1rem;
  position: fixed;
  bottom: 1rem;
  left: 1rem;
}

.fs-shell-consent p {
  color: var(--fs-muted);
  margin: 0;
}

.fs-shell-consent div,
.fs-shell-privacy-actions {
  flex-wrap: wrap;
  gap: 0.6rem;
  margin-top: 1rem;
  display: flex;
}

.fs-shell-consent button,
.fs-shell-privacy-actions button {
  border: 1px solid var(--fs-line);
  min-height: 42px;
  color: var(--fs-ink);
  cursor: pointer;
  background: none;
  padding: 0.65rem 0.9rem;
  font-weight: 800;
}

.fs-shell-consent button:last-child,
.fs-shell-privacy-actions button:last-child {
  border-color: var(--fs-red);
  background: var(--fs-red);
  color: #fff;
}

.fs-shell-privacy {
  border: 1px solid var(--fs-line);
  background: var(--fs-surface);
  width: min(38rem, 100% - 2rem);
  color: var(--fs-ink);
  box-shadow: 0 24px 90px var(--fs-shadow);
  padding: clamp(1.5rem, 4vw, 3rem);
}

.fs-shell-privacy::backdrop {
  backdrop-filter: blur(5px);
  background: #000000c2;
}

.fs-shell-privacy h2 {
  margin: 0.4rem 0;
  font-family:
    Georgia,
    Times New Roman,
    serif;
  font-size: clamp(2.2rem, 5vw, 4rem);
  line-height: 1;
}

.fs-shell-privacy p {
  color: var(--fs-muted);
}

.fs-shell-dialog-close {
  border: 1px solid var(--fs-line);
  width: 42px;
  height: 42px;
  color: var(--fs-ink);
  cursor: pointer;
  background: none;
  font-size: 1.6rem;
  position: absolute;
  top: 1rem;
  right: 1rem;
}

@media (width <= 700px) {

  .fs-shell-menu {
    flex-basis: 48px;
    width: 48px;
    height: 44px;
    padding-inline: 7px;
  }

  .fs-shell-wordmark strong {
    font-size: 1.12rem;
  }

  .fs-shell-wordmark span {
    font-size: 0.62rem;
  }

  .fs-shell-actions {
    gap: 0.25rem;
  }

  .fs-shell-prayer {
    padding: 0.48rem 0.55rem;
  }

  .fs-shell-tools {
    width: 58px;
  }

  .fs-shell-tools button,
  .fs-shell-tools a {
    height: 58px;
    min-height: 58px;
  }

  .fs-shell-tools .fs-shell-prayer-tool {
    height: 68px;
    min-height: 68px;
  }

  .fs-shell-tools small {
    font-size: 0.5rem;
  }

  .fs-shell-footer {
    grid-template-columns: 1fr;
  }

  .fs-shell-footer .fs-shell-fine {
    grid-column: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .fs-shell-masthead[data-menu-open="true"] .fs-shell-nav {
    animation: none;
  }

  .fs-shell-menu > span > span,
  .fs-shell-tools [data-rail-action] > span {
    transition: none;
  }
}

:root {
  color-scheme: light;
  --fs-shell-max: 1360px;
  --fs-bg: #f4f5f6;
  --fs-surface: #fff;
  --fs-surface-2: #e8eaed;
  --fs-ink: #0a0b0d;
  --fs-muted: #0a0b0d;
  --fs-line: #c9cdd2;
  --fs-red: #a6281e;
  --fs-red-bright: var(--fs-red);
  --fs-shadow: #080a0c33;
}

#canonical-player-host fs-canonical-player {
  --red: #a6281e;
  --red-bright: #a6281e;
}

#canonical-player-host
  fs-canonical-player
  :is(
    .eyebrow,
    .arrangement-title,
    .safety-warning-dialog .eyebrow,
    .faith-case-study .eyebrow,
    .faith-discernment .eyebrow,
    .faith-boundary .eyebrow,
    .veteran-safety .eyebrow
  ) {
  color: var(--ink);
}

#canonical-player-host fs-canonical-player .transport .main-play,
#canonical-player-host fs-canonical-player .transport .main-play:hover {
  border-color: #a6281e;
  background: #a6281e;
  color: #fff;
}

#canonical-player-host fs-canonical-player .transport .on {
  border-color: #a6281e;
  background: var(--surface-2);
  color: var(--ink);
  box-shadow: none;
}

#canonical-player-host
  fs-canonical-player
  :is(.timeline input, .volume input, .volume-popout input) {
  accent-color: #a6281e;
}

#canonical-player-host
  fs-canonical-player
  :is(
    .player-minimize,
    .volume > .player-icon-svg,
    .volume-toggle,
    .volume-toggle.muted
  ) {
  color: var(--ink);
}

#canonical-player-host fs-canonical-player .player-minimize:hover,
#canonical-player-host fs-canonical-player .player-open:hover,
#canonical-player-host fs-canonical-player .volume-toggle:hover,
#canonical-player-host fs-canonical-player .volume-toggle[aria-expanded="true"],
#canonical-player-host fs-canonical-player .player .timeline-toggle:hover,
#canonical-player-host
  fs-canonical-player
  .player
  .timeline-toggle[aria-expanded="true"] {
  border-color: #a6281e;
  color: var(--ink);
}

#canonical-player-host fs-canonical-player .player-open:hover img,
#canonical-player-host fs-canonical-player .player-open:focus-visible img {
  filter: none;
}

#canonical-player-host fs-canonical-player .transport .repeat-mode.on {
  border-color: #a6281e !important;
  color: var(--ink) !important;
}

#canonical-player-host
  fs-canonical-player
  .player
  .repeat-mode
  > .repeat-mode-badge {
  color: var(--ink);
}

#canonical-player-host
  fs-canonical-player
  :is(
    .player-download-status i,
    .player-download-status.downloading i,
    .player-download-status.waiting i,
    .player-download-status.ready i,
    .player-download-status.error i,
    .player .player-download-status.ready i,
    .player .player-download-status.downloading i,
    .player .player-download-status.waiting i
  ) {
  background: #a6281e;
  box-shadow: none;
  animation: none;
}

#canonical-player-host
  fs-canonical-player
  .song-dialog
  > header
  .song-dialog-actions
  .song-favorite.saved,
#canonical-player-host
  fs-canonical-player
  .song-dialog
  > header
  .song-social-links
  a:is(:hover, :focus-visible) {
  border-color: #a6281e;
  color: var(--ink);
}

#canonical-player-host
  fs-canonical-player
  .song-dialog
  > header
  .song-dialog-actions
  button:first-child:disabled {
  border-color: var(--line);
  background: var(--surface-2);
  color: var(--ink);
  opacity: 1;
}

#canonical-player-host
  fs-canonical-player
  :is(
    .transport button,
    .player-open,
    .player-art,
    .player-copy,
    .player-minimize,
    .volume-toggle,
    .player .player-copy > button
  ):focus-visible {
  outline: 3px solid #a6281e;
  outline-offset: 3px;
}

html[data-theme="dark"]
  #canonical-player-host
  fs-canonical-player
  :is(
    .transport button,
    .player-open,
    .player-art,
    .player-copy,
    .player-minimize,
    .volume-toggle,
    .player .player-copy > button
  ):focus-visible {
  outline-color: #fff;
}

.fs-shell-masthead {
  z-index: 45;
  margin-inline: auto;
  background: color-mix(in srgb, var(--fs-bg) 94%, transparent);
  border-bottom: 1px solid var(--fs-line);
  backdrop-filter: blur(18px);
  width: 100%;
  margin: 0;
  position: sticky;
  top: 0;
}

.fs-shell-header {
  border-bottom: 1px solid var(--fs-line);
  align-items: center;
  gap: 0.75rem;
  display: flex;
  width: min(calc(100% - 2.5rem), var(--fs-shell-max));
  border: 0;
  min-height: 78px;
  margin-inline: auto;
}

.fs-shell-masthead[data-menu-open="true"]
  .fs-shell-menu
  > span
  > span:first-child {
  width: 31px;
  transform: translate(2px, 10px) rotate(41deg);
}

.fs-shell-masthead[data-menu-open="true"]
  .fs-shell-menu
  > span
  > span:nth-child(2) {
  opacity: 0;
  transform: translateX(-7px);
}

.fs-shell-masthead[data-menu-open="true"]
  .fs-shell-menu
  > span
  > span:nth-child(3) {
  width: 27px;
  transform: translate(7px, -10px) rotate(-48deg);
}

.fs-shell-nav {
  z-index: 50;
  border: 1px solid var(--fs-line);
  border-top: 3px solid var(--fs-red);
  background: color-mix(in srgb, var(--fs-surface) 97%, transparent);
  width: min(360px, 100vw - 2.5rem);
  box-shadow: 0 20px 55px var(--fs-shadow);
  transform-origin: 0 0;
  border-radius: 0 0 8px 8px;
  padding: 0.5rem;
  display: none;
  position: absolute;
  overflow-y: auto;
  left: max(1.25rem, calc((100vw - var(--fs-shell-max)) / 2));
  top: 100%;
}

@media (width <= 700px) {
  .fs-shell-masthead {
    width: 100%;
  }

  .fs-shell-header {
    gap: 0.25rem;
    width: calc(100% - 1rem);
    min-height: 72px;
  }

  .fs-shell-mark {
    width: 42px;
    height: 42px;
  }
}

.fs-shell-footer {
  width: min(calc(100% - 2.5rem), var(--fs-shell-max));
  border-top: 1px solid var(--fs-line);
  color: var(--fs-muted);
  grid-template-columns: 1fr auto;
  align-items: start;
  gap: 2rem;
  margin-inline: auto;
  padding-block: 3rem;
  display: grid;
  padding-bottom: 9rem;
}

.fs-shell-wordmark strong em {
  color: #a6281e;
  font-style: normal;
}

html[data-theme="dark"] .fs-shell-wordmark strong em {
  color: #a6281e;
}

.fs-shell-mark {
  place-items: center;
  display: grid;
  width: 46px;
  height: 46px;
  box-shadow: none;
  background: none;
  border: 0;
  overflow: visible;
}

.fs-shell-mark img {
  display: block;
  object-fit: contain;
  filter: drop-shadow(0 2px 5px #0003);
  width: 46px;
  height: 46px;
  transform: none;
}

@media (width <= 700px) {
  .fs-shell-mark img {
    width: 42px;
    height: 42px;
  }
}

main > section {
  width: min(calc(100% - 2.5rem), var(--fs-shell-max));
  margin-inline: auto;
}

.root-lede {
  max-width: 49rem;
  color: var(--fs-muted);
  margin: 2rem 0 0;
  font-family:
    Georgia,
    Times New Roman,
    serif;
  font-size: clamp(1.18rem, 2vw, 1.5rem);
  line-height: 1.48;
}

.root-actions {
  flex-wrap: wrap;
  gap: 0.8rem;
  margin-top: 2.2rem;
  display: flex;
}

.root-button:is(:hover, :focus-visible) {
  border-color: var(--fs-red-bright);
  transform: translateY(-1px);
}

.root-text-link span {
  color: var(--accent, var(--fs-red-bright));
}

html[data-theme="dark"] body:not([data-page="home"], [data-page="greg"]) .root-text-link span {
  color: #fff;
}

.root-hero {
  grid-template-columns: minmax(0, 1.22fr) minmax(19rem, 0.78fr);
  align-items: center;
  gap: clamp(3rem, 7vw, 7rem);
  padding-block: clamp(5rem, 11vw, 9rem);
  display: grid;
  position: relative;
}

.root-hero:before {
  content: none;
  display: none;
}

.root-hero-copy {
  min-width: 0;
}

body[data-page="greg"] .root-hero {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  background: #08090b;
  color: #fff;
  display: block;
}

body[data-page="greg"] .root-hero > .greg-section-inner {
  width: min(calc(100% - 2.5rem), var(--fs-shell-max));
  margin-inline: auto;
  grid-template-columns: minmax(0, 1.22fr) minmax(19rem, 0.78fr);
  align-items: center;
  gap: clamp(3rem, 7vw, 7rem);
  padding-block: clamp(5rem, 11vw, 9rem);
  display: grid;
}

body[data-page="greg"] .root-hero :is(.root-title, .root-lede, .root-photo figcaption, .root-photo figcaption span) {
  color: #fff;
}

body[data-page="greg"] .root-hero :is(.root-kicker, .root-title em) {
  color: #a6281e;
}

body[data-page="greg"] .root-hero .root-button:not(.root-button--primary) {
  border-color: #fff;
  background: transparent;
  color: #fff;
}

.root-photo {
  margin: 0;
}

.root-photo-frame img {
  aspect-ratio: 1;
  object-fit: cover;
  filter: saturate(0.88) contrast(1.04);
  width: 100%;
  height: auto;
  display: block;
}

.root-photo figcaption strong {
  font-family:
    Georgia,
    Times New Roman,
    serif;
  font-size: 1.5rem;
}

body[data-page="greg"] .profile-section {
  --accent: var(--fs-red);
  border-top: 2px solid var(--fs-red);
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  position: relative;
}

body[data-page="greg"] .profile-section > .greg-section-inner {
  width: min(calc(100% - 2.5rem), var(--fs-shell-max));
  margin-inline: auto;
  grid-template-columns: minmax(12rem, 0.38fr) minmax(0, 1fr);
  gap: clamp(2rem, 7vw, 7rem);
  padding-block: clamp(4rem, 8vw, 7rem);
  display: grid;
  position: relative;
  z-index: 1;
}

body[data-page="greg"] .profile-section:before {
  content: attr(data-index);
  z-index: 0;
  color: var(--fs-red);
  opacity: 0.18;
  font-family:
    FS Display,
    Impact,
    sans-serif;
  font-size: clamp(9rem, 22vw, 20rem);
  font-weight: 800;
  line-height: 1;
  position: absolute;
  top: -0.18em;
  left: max(1.25rem, calc((100vw - var(--fs-shell-max)) / 2));
  pointer-events: none;
}

body[data-page="greg"] .profile-section:is([data-index="01"], [data-index="03"], [data-index="05"], [data-index="07"]) {
  background: #f2f0eb;
  color: #0a0b0d;
}

body[data-page="greg"] .profile-section:is([data-index="02"], [data-index="04"], [data-index="06"]) {
  background: #08090b;
  color: #fff;
}

body[data-page="greg"] .profile-section:is([data-index="02"], [data-index="04"], [data-index="06"]):before {
  opacity: 0.46;
}

html[data-theme="dark"] body[data-page="greg"] .profile-section:is([data-index="01"], [data-index="03"], [data-index="05"], [data-index="07"]) {
  background: var(--fs-surface-2);
  color: #fff;
}

html[data-theme="dark"] body[data-page="greg"] .profile-section:is([data-index="02"], [data-index="04"], [data-index="06"]) {
  background: var(--fs-bg);
  color: #fff;
}

html[data-theme="dark"] body[data-page="greg"] .profile-section:before {
  opacity: 0.46;
}

body[data-page="greg"] .profile-section :is(.root-kicker, .root-heading em) {
  color: var(--fs-red);
}

body[data-page="greg"] .profile-section :is(.root-heading, .profile-copy, .profile-note) {
  color: currentColor;
}

body[data-page="greg"] .profile-section .root-button:not(.root-button--primary) {
  border-color: currentColor;
  background: transparent;
  color: currentColor;
}

body[data-page="greg"] .profile-section[data-index="02"] .root-heading {
  max-width: 100%;
  overflow-wrap: anywhere;
  font-size: clamp(3.2rem, 5.5vw, 5.4rem);
  line-height: 0.8;
}

.profile-section .root-heading {
  font-size: clamp(2rem, 4.5vw, 4rem);
}

.profile-section .root-heading em,
.root-title em {
  color: var(--fs-red);
  font-style: normal;
}

.profile-copy {
  max-width: 48rem;
}

.profile-copy > p:first-child {
  margin-top: 0;
}

.profile-note {
  color: var(--fs-muted);
  margin-top: 1.5rem;
  padding: 0;
  font-size: 0.92rem;
}

.profile-links {
  border-top: 1px solid var(--fs-line);
  margin: 2rem 0 0;
  padding: 0;
  list-style: none;
}

.profile-links li {
  border-bottom: 1px solid var(--fs-line);
}

.profile-links a {
  padding: 1.1rem 0;
  font-weight: 850;
  text-decoration: none;
  display: block;
}

.profile-links a:is(:hover, :focus-visible),
.root-text-link:is(:hover, :focus-visible) {
  color: var(--accent);
  text-decoration-color: var(--accent);
}

.directory-page {
  padding-block: clamp(5rem, 10vw, 8rem);
}

.directory-grid {
  margin-top: 3rem;
  max-width: 72rem;
  display: block;
}

.directory-card {
  color: var(--fs-ink);
  grid-template-columns: clamp(2.5rem, 5vw, 4.5rem) minmax(0, 1fr) auto;
  align-items: center;
  column-gap: clamp(0.8rem, 2vw, 1.5rem);
  min-height: 5.5rem;
  padding: 1.25rem 0;
  text-decoration: none;
  display: grid;
}

.directory-card + .directory-card {
  border-top: 1px solid var(--fs-line);
}

.directory-card:is(:hover, :focus-visible) {
  color: var(--fs-ink);
}

.directory-card:focus-visible {
  outline: 2px solid var(--fs-red);
  outline-offset: 4px;
}

.directory-card b {
  color: var(--fs-ink);
  letter-spacing: 0.14em;
  font-size: 0.75rem;
  align-self: start;
  padding-top: 0.45rem;
}

.directory-card strong {
  font-family:
    Georgia,
    Times New Roman,
    serif;
  color: inherit;
  font-size: clamp(1.55rem, 3vw, 2.2rem);
  line-height: 1;
  display: block;
}

.directory-card span {
  color: var(--fs-ink);
  min-width: 0;
  gap: 0.4rem;
  display: grid;
}

.directory-card small {
  color: var(--fs-ink);
  font-size: 1rem;
  line-height: 1.5;
}

.directory-card i {
  color: var(--fs-ink);
  letter-spacing: 0.12em;
  font-size: 0.72rem;
  font-style: normal;
  font-weight: 900;
  text-transform: uppercase;
}

.directory-card:is(:hover, :focus-visible) strong {
  text-decoration: underline;
  text-decoration-thickness: 0.1em;
  text-underline-offset: 0.18em;
}

.prayer-layout {
  grid-template-columns: minmax(0, 0.8fr) minmax(20rem, 1.2fr);
  align-items: start;
  gap: clamp(2.5rem, 7vw, 7rem);
  display: grid;
}

.prayer-form fieldset {
  border: 0;
  margin: 0;
  padding: 0;
}

.prayer-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  display: grid;
}

.prayer-field {
  gap: 0.4rem;
  margin-bottom: 1rem;
  display: grid;
}

.prayer-field--wide {
  grid-column: 1 / -1;
}

.prayer-honeypot {
  width: 1px !important;
  height: 1px !important;
  position: absolute !important;
  left: -10000px !important;
  overflow: hidden !important;
}

.prayer-crisis strong {
  color: var(--fs-ink);
  display: block;
}

.prayer-status[data-state="error"] {
  color: var(--fs-ink);
}

.prayer-status[data-state="success"] {
  background: color-mix(in srgb, #22c55e 8%, var(--fs-surface));
  color: var(--fs-ink);
  border-left: 4px solid #22c55e;
  padding: 1rem;
}

.prayer-submit {
  border: 1px solid var(--fs-red);
  background: var(--fs-red);
  color: #fff;
  width: 100%;
  min-height: 54px;
  font: inherit;
  cursor: pointer;
  margin-top: 1rem;
  font-weight: 900;
}

.prayer-submit:hover:not(:disabled) {
  background: var(--fs-red-bright);
}

.prayer-submit:disabled {
  border-color: #3d4147;
  background: #3d4147;
  opacity: 1;
  cursor: wait;
}

@media (width <= 780px) {
  main > section {
    width: min(calc(100% - 1.5rem), var(--fs-shell-max));
  }

  body[data-page="greg"] :is(.root-hero, .profile-section) > .greg-section-inner {
    width: min(calc(100% - 1.5rem), var(--fs-shell-max));
    grid-template-columns: 1fr;
  }

  body[data-page="greg"] .root-hero > .greg-section-inner {
    gap: clamp(2rem, 8vw, 4rem);
  }

  body[data-page="greg"] .profile-section:before {
    left: 0.75rem;
  }

  .root-hero,
  .profile-section,
  .prayer-layout {
    grid-template-columns: 1fr;
  }

  .root-photo {
    width: min(100%, 28rem);
  }

  .directory-grid {
    grid-template-columns: 1fr;
  }

  .prayer-copy {
    position: static;
  }

  .prayer-grid {
    grid-template-columns: 1fr;
  }

  .prayer-field--wide {
    grid-column: auto;
  }
}

@media (width <= 480px) {
  .root-title {
    font-size: clamp(3.25rem, 17vw, 5rem);
  }

  .directory-card {
    grid-template-columns: 1fr auto;
  }

  .directory-card b {
    grid-column: 1 / -1;
  }
}

@media (prefers-reduced-motion: reduce) {
  .root-button,
  .directory-card {
    transition: none;
  }
}

@font-face {
  font-family: FS Display;
  src: url("/assets/fonts/v1/barlow-condensed-800.woff2") format("woff2");
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: FS Serif;
  src: url("/assets/fonts/v1/source-serif-4-400.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

.root-heading {
  font-size: clamp(2.5rem, 5.6vw, 5rem);
  text-wrap: balance;
  margin: 0;
  line-height: 0.94;
  letter-spacing: -0.045em;
  text-transform: uppercase;
  font-family:
    FS Display,
    Impact,
    sans-serif;
  font-weight: 800;
}

.root-title {
  font-size: clamp(3.9rem, 9vw, 7.8rem);
  text-wrap: balance;
  margin: 0;
  line-height: 0.94;
  letter-spacing: -0.045em;
  text-transform: uppercase;
  font-family:
    FS Display,
    Impact,
    sans-serif;
  font-weight: 800;
}

.root-fs-hero:before {
  content: "";
  z-index: -1;
  background:
    linear-gradient(
      90deg,
      #040507fa 0%,
      #040507e8 40%,
      #0405077a 66%,
      #0405072e 100%
    ),
    linear-gradient(0deg, #040507db, #0000 50%);
  position: absolute;
  inset: 0;
}

.root-fs-hero:after {
  content: "";
  background: var(--fs-red);
  height: 4px;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
}

.root-fs-hero-media {
  z-index: -1;
  opacity: 0.88;
  mix-blend-mode: screen;
  width: min(54vw, 850px);
  position: absolute;
  inset: 0 0 0 auto;
  overflow: hidden;
  mask-image: linear-gradient(90deg, #0000 0, #000 34% 100%);
}

.root-fs-hero-media picture {
  width: 100%;
  height: 100%;
  display: block;
}

.root-fs-hero-media img {
  object-fit: cover;
  object-position: 50% 34%;
  filter: grayscale(0.75) contrast(1.22) brightness(0.7);
  width: 100%;
  height: 100%;
}

.root-fs-hero-media span {
  background: repeating-linear-gradient(0deg, #0000 0 3px, #ffffff06 3px 4px);
  position: absolute;
  inset: 0;
}

.root-fs-hero-copy > * {
  max-width: 720px;
}

.root-fs-hero .root-kicker {
  color: #a6281e;
  letter-spacing: 0.3em;
}

.root-fs-hero h1 strong {
  display: block;
  color: #a6281e;
  text-shadow: none;
}

.root-fs-identity {
  right: max(2rem, calc((100vw - var(--fs-shell-max)) / 2));
  text-align: left;
  border-left: 3px solid #a6281e;
  padding-left: 1.4rem;
  display: grid;
  position: absolute;
  bottom: 4rem;
}

.root-fs-identity strong {
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-family:
    FS Display,
    Impact,
    sans-serif;
  font-size: 1.5rem;
}

.root-music-copy {
  max-width: 760px;
}

.root-music-story h2 {
  letter-spacing: -0.055em;
  text-transform: uppercase;
  margin: 0;
  font-family:
    FS Display,
    Impact,
    sans-serif;
  font-size: clamp(4.6rem, 8.5vw, 9rem);
  font-weight: 800;
  line-height: 0.72;
}

.root-music-story h2 strong {
  display: block;
  color: #a6281e;
  text-shadow: none;
}

.root-genres {
  border-block: 1px solid #30343a;
  flex-wrap: wrap;
  gap: 0;
  margin: 2.4rem 0;
  display: flex;
}

.root-genres span + span:before {
  content: "/";
  color: #a6281e;
  margin-right: 1.1rem;
}

.root-music-art {
  aspect-ratio: 1;
  width: 100%;
  max-width: 820px;
  justify-self: end;
  position: relative;
  overflow: hidden;
  box-shadow: none;
}

.root-music-art:before {
  content: none;
}

.root-music-art img {
  object-fit: cover;
  object-position: 56% 50%;
  width: 100%;
  height: 100%;
  transition: transform 0.7s;
  display: block;
  -webkit-mask-image: radial-gradient(ellipse at 56% 50%, #000 46%, #000 70%, #0000 100%);
  mask-image: radial-gradient(ellipse at 56% 50%, #000 46%, #000 70%, #0000 100%);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
}

.root-music-art:hover img {
  transform: scale(1.025);
}

.root-music-art > div {
  z-index: 2;
  align-items: end;
  gap: 7px;
  height: 48px;
  display: flex;
  position: absolute;
  bottom: 1.2rem;
  left: 1.4rem;
  right: 1.4rem;
}

.root-music-art i {
  background: #a6281e;
  width: 7px;
  display: block;
}

.root-music-art i:first-child {
  height: 28%;
}

.root-music-art i:nth-child(2) {
  height: 72%;
}

.root-music-art i:nth-child(3) {
  height: 100%;
}

.root-music-art i:nth-child(4) {
  height: 55%;
}

.root-music-art i:nth-child(5) {
  height: 36%;
}

.root-pathways > header .root-kicker {
  grid-column: 1 / -1;
}

.root-pathways > header h2 {
  letter-spacing: -0.06em;
  text-transform: uppercase;
  margin: 0;
  font-family:
    FS Display,
    Impact,
    sans-serif;
  font-size: clamp(5rem, 10vw, 10rem);
  line-height: 0.67;
}

.root-pathways > header h2 strong {
  color: #a6281e;
}

.root-pathways > header > p:last-child {
  max-width: 520px;
  color: var(--fs-muted);
  margin: 0 0 0.5rem;
  font-family:
    FS Serif,
    Georgia,
    serif;
  font-size: clamp(1.15rem, 2vw, 1.55rem);
  line-height: 1.5;
}

.root-pathway-list article[data-accent="green"] {
  --accent: #22a955;
}

.root-pathway-list article[data-accent="blue"] {
  --accent: #3278d4;
}

.root-pathway-list article[data-accent="red"] > span {
  color: var(--fs-red);
}

.root-pathway-list article > span {
  color: var(--accent);
  letter-spacing: 0.16em;
  font-family:
    FS Display,
    Impact,
    sans-serif;
  font-size: 0.85rem;
}

.root-pathway-list nav a:is(:hover, :focus-visible):after {
  right: 0;
}

.root-testimony-modern:after {
  content: "";
  z-index: -1;
  background: linear-gradient(90deg, #08090bfa, #08090be6 50%, #08090bc2);
  position: absolute;
  inset: 0;
}

.root-testimony-modern h2 {
  letter-spacing: -0.04em;
  text-transform: uppercase;
  margin: 0;
  font-family:
    FS Display,
    Impact,
    sans-serif;
  font-size: clamp(3rem, 6vw, 6rem);
  line-height: 0.86;
}

.root-testimony-modern h2 strong {
  color: #a6281e;
}

.root-testimony-copy blockquote {
  color: #fff;
  border-left: 3px solid #a6281e;
  margin: 0;
  padding-left: 1.5rem;
  font-family:
    FS Serif,
    Georgia,
    serif;
  font-size: clamp(1.35rem, 2.4vw, 2rem);
  line-height: 1.35;
}

.root-testimony-modern .root-button--primary {
  background: #a6281e;
  border-color: #a6281e;
}

.root-photo-frame {
  background: #121315;
  position: relative;
  overflow: hidden;
  box-shadow: none;
  border: 0;
}

.root-photo-frame:after {
  content: "";
  border-bottom: 4px solid #a6281e;
  position: absolute;
  inset: 0;
  box-shadow: inset 0 -80px 90px #00000042;
}

.root-photo figcaption {
  gap: 0.1rem;
  display: grid;
  border-left: 0;
  margin-top: 1rem;
  padding-left: 0;
}

.root-photo figcaption span {
  color: var(--fs-muted);
  font-size: 0.82rem;
  font-weight: 750;
  text-transform: uppercase;
  letter-spacing: 0.14em;
}

@media (width <= 900px) {
  .root-fs-hero-media {
    opacity: 0.56;
    width: 76vw;
  }

  .root-fs-hero-media img {
    object-position: 50% center;
  }

  .root-fs-identity {
    right: 1.5rem;
    bottom: 7rem;
    max-width: min(27rem, calc(100% - 3rem));
  }

  .root-pathways > header {
    grid-template-columns: 1fr;
  }

  .root-music-art {
    width: 100%;
    max-width: 720px;
    justify-self: center;
  }

  .root-fs-hero-copy {
    width: calc(100% - 2rem);
  }

  .root-testimony-modern {
    grid-template-columns: 1fr;
    padding-inline: 1.25rem;
  }

  .root-music-story {
    grid-template-columns: 1fr;
    padding-inline: 1.25rem;
  }

  .root-pathways {
    width: calc(100% - 2rem);
  }
}

@media (width <= 540px) {

  .root-fs-hero-copy > p:not(.root-kicker) {
    font-size: 0.93rem;
  }

  .root-music-story h2 {
    font-size: clamp(4rem, 21vw, 6rem);
  }

  .root-genres span {
    width: 50%;
  }

  .root-genres span + span:before {
    display: none;
  }

  .root-pathways > header {
    display: block;
  }

  .root-pathways > header h2 {
    margin: 2rem 0 3rem;
    font-size: clamp(5rem, 27vw, 8rem);
  }

  .root-pathway-list article {
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  .root-pathway-list article > div {
    grid-column: auto;
  }

  .root-pathway-list h3 {
    font-size: 4rem;
  }

  .root-testimony-modern {
    padding-block: 6rem;
  }

  .root-actions {
    align-items: stretch;
  }

  .root-actions .root-button {
    justify-content: center;
    width: 100%;
  }
}

.root-testimony-modern:before {
  content: "";
  z-index: -2;
  opacity: 0.28;
  filter: grayscale(0.35) contrast(1.15);
  background: url("/assets/media/v1/carry-it-forward-feature-v2.webp") center /
    cover no-repeat;
  position: absolute;
  inset: 0;
  background-image: url("/assets/media/v1/carry-it-forward-feature-v2.webp");
}

.root-text-link {
  color: var(--fs-ink);
  margin-top: 0.8rem;
  font-weight: 900;
  display: inline-block;
  font: inherit;
  text-align: left;
  cursor: pointer;
  background: none;
  border: 0;
  padding: 0;
}

html[data-theme="dark"]
  :is(
    .root-fs-hero-copy > p:not(.root-kicker),
    .root-fs-identity span,
    .root-music-story p,
    .root-testimony-copy > p
  ) {
  color: #fff;
}

body[data-page="greg"] .profile-section[data-index="05"] .root-text-link {
  border: 1px solid var(--fs-red);
  background: var(--fs-red);
  color: #fff;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  align-items: center;
  min-height: 3.2rem;
  margin-top: 1.25rem;
  padding: 0.7rem 1.15rem;
  font-family:
    FS Display,
    Impact,
    sans-serif;
  font-size: 0.82rem;
  font-weight: 800;
  text-decoration: none;
  display: inline-flex;
}

body[data-page="greg"] .profile-section[data-index="05"] .root-text-link:is(:hover, :focus-visible) {
  border-color: var(--fs-red-bright);
  background: var(--fs-red-bright);
  color: #fff;
  transform: translateY(-1px);
}

body[data-page="greg"] .resource-groups {
  max-width: 48rem;
  margin-top: 2.5rem;
  display: grid;
}

body[data-page="greg"] .resource-groups > section {
  border: 0;
  margin: 0;
  padding: 0;
}

body[data-page="greg"] .resource-groups > section + section {
  border-top: 1px solid var(--fs-line);
  margin-top: 1.5rem;
  padding-top: 1.5rem;
}

body[data-page="greg"] .resource-groups .root-kicker {
  margin: 1rem 0;
}

body[data-page="greg"] .resource-groups :is(a, button) {
  border: 0;
  border-top: 1px solid var(--fs-line);
  width: 100%;
  color: currentColor;
  font: inherit;
  text-align: left;
  cursor: pointer;
  background: none;
  gap: 0.15rem;
  padding: 1rem 0;
  text-decoration: none;
  display: grid;
}

body[data-page="greg"] .resource-groups :is(a, button):is(:hover, :focus-visible) {
  color: currentColor;
  text-decoration: underline;
}

body[data-page="greg"] .resource-groups strong {
  font-size: 0.92rem;
}

body[data-page="greg"] .resource-groups small {
  color: currentColor;
  font-size: 0.74rem;
  line-height: 1.45;
}

body[data-page="greg"] .resource-groups :is(a, button):is(:hover, :focus-visible) small {
  color: inherit;
}

.root-scope:before {
  content: "";
  background: currentColor;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 48px;
  height: 2px;
}

.root-scope:after {
  content: "";
  background: currentColor;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 2px;
  height: 48px;
}

@media (width <= 780px) {
  .root-boundary {
    grid-template-columns: 1fr;
  }

  .root-boundary > .root-kicker {
    grid-column: auto;
    margin-bottom: 0;
  }

  .root-boundary > p:last-child {
    margin: 0;
  }
}

.root-pathway-list {
  border-top: 1px solid var(--fs-line);
  background: #292d33;
  border: 1px solid #292d33;
  gap: 1px;
  display: grid;
}

.root-pathway-list article:before {
  content: "";
  z-index: -2;
  filter: grayscale(0.72) contrast(1.2);
  opacity: 0.36;
  background-position: center;
  background-size: cover;
  transition:
    opacity 0.45s,
    transform 0.7s;
  position: absolute;
  inset: 0;
  transform: scale(1.02);
}

.root-pathway-list article:after {
  content: "";
  z-index: -1;
  background: linear-gradient(
    90deg,
    #06080bfa 0%,
    #06080be6 48%,
    color-mix(in srgb, var(--accent) 22%, #06080bc7) 100%
  );
  position: absolute;
  inset: 0;
}

.root-pathway-list article[data-accent="red"]:after {
  background: linear-gradient(90deg, #06080bfa 0%, #06080be6 48%, #06080bc7 100%);
}

.root-pathway-list article:first-child:before {
  background-image: url("/assets/media/v1/shattered-lens-feature-v2.webp");
  background-position: 58% 48%;
}

.root-pathway-list article:nth-child(2):before {
  background-image: url("/assets/media/v1/carry-it-forward-feature-v2.webp");
  background-position: 50% 54%;
}

.root-pathway-list article:nth-child(3):before {
  background-image: url("/assets/media/v1/the-war-came-home.webp");
  background-position: 50% 42%;
}

.root-pathway-list article:hover:before {
  opacity: 0.48;
  transform: scale(1.055);
}

.root-pathway-list h3:after {
  content: "";
  background: var(--accent);
  width: 38%;
  height: 7px;
  box-shadow: 0 0 24px color-mix(in srgb, var(--accent) 62%, transparent);
  margin-top: 0.24em;
  display: block;
}

.root-pathway-list article[data-accent="red"] h3:after {
  box-shadow: none;
}

.root-pathway-list p {
  max-width: 650px;
  margin: 0;
  color: #fff;
  font-family:
    FS Serif,
    Georgia,
    serif;
  font-size: clamp(1.05rem, 1.8vw, 1.35rem);
  line-height: 1.55;
}

.root-pathway-list nav {
  flex-wrap: wrap;
  display: flex;
  gap: 0.65rem;
  margin-top: 1.8rem;
}

.root-pathway-list nav a:after {
  content: "";
  background: var(--accent);
  height: 2px;
  transition: right 0.2s;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 100%;
  display: none;
}

.root-pathway-list nav a:is(:hover, :focus-visible) {
  border-color: var(--accent);
  background: var(--accent);
  color: #06080a;
  box-shadow: 0 0 24px color-mix(in srgb, var(--accent) 38%, transparent);
}

.root-pathway-list
  article[data-accent="red"]
  nav
  a:is(:hover, :focus-visible) {
  color: #fff;
  box-shadow: none;
}

@media (width <= 900px) {
}

@media (width <= 560px) {
  .root-pathway-list {
    border-inline: 0;
    margin-inline: -1rem;
  }

  .root-pathway-list article {
    grid-template-columns: 50px 1fr;
    gap: 1.4rem;
    min-height: 520px;
    padding: 2rem 1.25rem;
    display: grid;
  }

  .root-pathway-list .root-scope:before {
    width: 54px;
    height: 2px;
  }

  .root-pathway-list .root-scope:after {
    width: 2px;
    height: 54px;
  }

  .root-pathway-list h3 {
    font-size: clamp(4.5rem, 24vw, 7rem);
  }

  .root-pathway-list article > div {
    grid-column: 1 / -1;
    padding: 1.2rem;
  }

  .root-pathway-list nav a {
    width: 100%;
  }
}

.root-pathways > header blockquote {
  border-left: 3px solid var(--fs-red);
  max-width: 560px;
  color: var(--fs-ink);
  margin: 0 0 0.5rem;
  padding-left: 1.4rem;
  font-family:
    FS Serif,
    Georgia,
    serif;
  font-size: clamp(1.2rem, 2vw, 1.6rem);
  line-height: 1.5;
}

.root-pathways > header blockquote cite {
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin-top: 1rem;
  font-family:
    FS Display,
    Impact,
    sans-serif;
  font-size: 0.72rem;
  font-style: normal;
  display: block;
}

.root-pathways > header blockquote cite a {
  color: var(--fs-red);
  text-decoration: none;
}

.root-pathways > header blockquote cite a:is(:hover, :focus-visible) {
  color: var(--fs-red-bright);
  text-decoration: underline;
}

.root-pathways > header blockquote strong {
  color: var(--fs-red);
  font-weight: 800;
}

.root-pathways > header blockquote u {
  text-underline-offset: 0.14em;
  text-decoration-thickness: 0.12em;
}

.root-kicker {
  color: var(--fs-red);
  text-transform: uppercase;
  margin: 0 0 1rem;
  font-weight: 900;
  letter-spacing: 0.16em;
  font-size: clamp(0.84rem, 0.22vw + 0.78rem, 0.96rem);
}

html[data-theme="dark"] body:not([data-page="home"], [data-page="greg"]) .root-kicker {
  color: #fff;
}

.root-button {
  border: 1px solid var(--fs-line);
  background: var(--fs-surface);
  min-height: 3.2rem;
  color: var(--fs-ink);
  align-items: center;
  padding: 0.7rem 1.15rem;
  font-weight: 850;
  text-decoration: none;
  display: inline-flex;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-family:
    FS Display,
    Impact,
    sans-serif;
  cursor: pointer;
  font-size: clamp(0.88rem, 0.16vw + 0.84rem, 0.98rem);
}

.root-button--primary {
  border-color: var(--fs-red);
  background: var(--fs-red);
  color: #fff;
}

.root-button--ghost {
  border-color: currentColor;
  background: transparent;
  color: inherit;
}

.root-testimony-copy cite {
  color: #a6281e;
  text-transform: uppercase;
  margin-top: 1rem;
  font-family:
    FS Display,
    Impact,
    sans-serif;
  font-style: normal;
  display: block;
  letter-spacing: 0.12em;
  font-size: clamp(0.82rem, 0.18vw + 0.77rem, 0.92rem);
}

.root-pathway-list nav a {
  letter-spacing: 0.11em;
  text-transform: uppercase;
  padding-bottom: 0.25rem;
  font-family:
    FS Display,
    Impact,
    sans-serif;
  text-decoration: none;
  position: relative;
  border: 1px solid color-mix(in srgb, var(--accent) 65%, #515761);
  color: #fff;
  background: #05070ab8;
  padding: 0.65rem 0.85rem;
  font-size: clamp(0.82rem, 0.14vw + 0.78rem, 0.9rem);
}

.root-pathway-list article[data-accent="red"] nav a {
  border-color: #a6281e;
}

.root-genres span {
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 0.85rem 1.1rem 0.85rem 0;
  font-family:
    FS Display,
    Impact,
    sans-serif;
  font-size: clamp(0.84rem, 0.14vw + 0.8rem, 0.92rem);
  color: #fff;
}

.root-music-story .root-music-lede {
  margin: 2.5rem 0 1rem;
  font-family:
    FS Serif,
    Georgia,
    serif;
  font-size: clamp(1.35rem, 2.5vw, 2rem);
  line-height: 1.25;
  color: #fff;
}

.root-music-story p {
  max-width: 700px;
  color: #fff;
}

.root-music-story h2 span {
  display: block;
  color: #fff;
}

.root-music-story {
  width: 100%;
  max-width: none;
  padding: clamp(6rem, 10vw, 10rem)
    max(3rem, calc((100vw - var(--fs-shell-max)) / 2));
  background: #08090b;
  grid-template-columns: minmax(0, 0.95fr) minmax(340px, 1.05fr);
  align-items: center;
  gap: clamp(2rem, 4vw, 5rem);
  margin: 0;
  display: grid;
  color: #fff;
}

.root-fs-identity span {
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-size: 0.74rem;
  font-weight: 800;
  color: #fff;
}

.root-fs-hero h1 span {
  display: block;
  color: #fff;
}

.root-music-story .root-kicker {
  color: #fff;
}

.root-testimony-copy > p {
  margin-top: 2.2rem;
  color: #fff;
}

.root-testimony-modern {
  width: 100%;
  max-width: none;
  padding: clamp(7rem, 12vw, 12rem)
    max(3rem, calc((100vw - var(--fs-shell-max)) / 2));
  isolation: isolate;
  background: #0a0b0d;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1fr);
  gap: clamp(3rem, 9vw, 10rem);
  margin: 0;
  display: grid;
  position: relative;
  overflow: hidden;
  color: #fff;
}

.root-boundary {
  border-top: 1px solid var(--fs-line);
  padding-block: clamp(4rem, 8vw, 7rem);
  grid-template-columns: minmax(0, 0.95fr) minmax(20rem, 0.7fr);
  align-items: start;
  gap: clamp(2.5rem, 7vw, 7rem);
  display: grid;
  width: 100%;
  max-width: none;
  padding: clamp(4rem, 7vw, 7rem)
    max(1.5rem, calc((100vw - var(--fs-shell-max)) / 2));
  color: var(--fs-ink);
  border: 0;
  margin: 0;
  isolation: isolate;
  background: var(--fs-surface);
  position: relative;
  overflow: hidden;
}

.root-boundary > .root-kicker {
  grid-column: 1 / -1;
  margin-bottom: -1.5rem;
  color: var(--fs-red);
}

.root-boundary .root-heading {
  color: var(--fs-ink);
  max-width: 15ch;
}

.root-boundary > p:last-child {
  color: var(--fs-ink);
  max-width: 42rem;
  margin: 0.5rem 0 0;
  font-size: 1.1rem;
}

.root-boundary .root-heading em {
  font-style: normal;
  color: var(--fs-red);
  display: inline-block;
  position: relative;
}

.root-boundary .root-heading em:after {
  content: "";
  background: #08090b;
  height: 0.08em;
  position: absolute;
  bottom: -0.08em;
  left: 0;
  right: 0;
}

.root-music-story .root-text-link {
  color: #fff;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  background: #a6281e;
  border: 1px solid #a6281e;
  align-items: center;
  min-height: 2.8rem;
  margin-top: 1.25rem;
  padding: 0.62rem 0.9rem;
  font-family:
    FS Display,
    Impact,
    sans-serif;
  font-size: clamp(0.78rem, 0.12vw + 0.75rem, 0.86rem);
  font-weight: 800;
  text-decoration: none;
  display: inline-flex;
}

.root-music-story .root-text-link:is(:hover, :focus-visible) {
  color: #fff;
  background: #a6281e;
  border-color: #a6281e;
  transform: translateY(-1px);
}

@media (width <= 780px) {

  .root-boundary:after {
    opacity: 0.68;
    right: 9%;
  }
}

.root-boundary:before {
  content: "";
  z-index: -1;
  aspect-ratio: 1;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: min(47vw, 570px);
  box-shadow: none;
  opacity: 0.14;
  background: var(--fs-red);
  -webkit-mask: url("/assets/root/v1/sniper-reticle.svg") center / contain
    no-repeat;
  mask: url("/assets/root/v1/sniper-reticle.svg") center / contain no-repeat;
  border: 0;
  right: 3%;
}

.root-boundary:after {
  content: "";
  z-index: -1;
  position: absolute;
  background: radial-gradient(
    circle,
    #fff 0 3px,
    #0000 4px 15px,
    #ffffffb8 16px 18px,
    #0000 19px
  );
  border: 2px solid #ffffff94;
  border-radius: 50%;
  width: 74px;
  height: 74px;
  top: 50%;
  bottom: auto;
  right: calc(5% + min(22vw, 270px));
  transform: translate(50%, -50%);
  box-shadow:
    0 -252px 0 -34px #ffffff9e,
    0 252px 0 -34px #ffffff9e,
    252px 0 0 -34px #ffffff9e,
    -252px 0 0 -34px #ffffff9e;
  display: none;
}

@media (width <= 780px) {
  .root-boundary:before {
    opacity: 0.3;
    width: 500px;
    right: -31%;
  }
}

.root-pathway-list .root-scope:after {
  width: 3px;
  height: 76px;
  display: none;
}

.root-pathway-list .root-scope:before {
  width: 76px;
  height: 3px;
  display: none;
}

@media (width <= 560px) {
}

.root-pathway-list article {
  --accent: #a6281e;
  border-bottom: 1px solid var(--fs-line);
  align-items: start;
  gap: clamp(1.5rem, 4vw, 5rem);
  display: grid;
  z-index: 0;
  color: #fff;
  isolation: isolate;
  background: #090b0e;
  border: 0;
  min-height: 390px;
  padding: clamp(2rem, 5vw, 5rem);
  position: relative;
  overflow: hidden;
  grid-template-columns: minmax(280px, 0.7fr) minmax(0, 1fr);
}

.root-pathway-list article > .root-scope {
  color: var(--accent);
  display: block;
  position: relative;
  border-width: 3px;
  align-self: center;
  box-shadow: none;
  background: currentColor;
  border: 0;
  border-radius: 0;
  -webkit-mask: url("/assets/root/v1/sniper-reticle.svg") center / contain
    no-repeat;
  mask: url("/assets/root/v1/sniper-reticle.svg") center / contain no-repeat;
  z-index: 0;
  opacity: 0.28;
  width: clamp(220px, 23vw, 320px);
  height: clamp(220px, 23vw, 320px);
  filter: drop-shadow(
    0 0 22px color-mix(in srgb, currentColor 68%, transparent)
  );
  grid-area: 1 / 1;
  justify-self: center;
}

.root-pathway-list article[data-accent="red"] > .root-scope {
  color: var(--fs-red);
}

.root-pathway-list h3 {
  letter-spacing: -0.045em;
  text-transform: uppercase;
  margin: 0;
  font-family:
    FS Display,
    Impact,
    sans-serif;
  color: var(--accent);
  text-shadow: 0 3px 25px #000c;
  align-self: center;
  font-size: clamp(5.5rem, 10vw, 10rem);
  line-height: 0.7;
  z-index: 1;
  text-align: center;
  grid-area: 1 / 1;
  place-self: center;
}

.root-pathway-list article > div {
  border-left: 2px solid var(--accent);
  backdrop-filter: blur(4px);
  background: linear-gradient(90deg, #07090cc2, #07090c38);
  align-self: center;
  padding: clamp(1.2rem, 3vw, 2.5rem);
  z-index: 1;
  grid-area: 1 / 2;
}

@media (width <= 900px) {
  .root-pathway-list article {
    min-height: 430px;
    grid-template-columns: 1fr;
  }

  .root-pathway-list h3 {
    font-size: clamp(5rem, 18vw, 8rem);
    grid-area: 1 / 1;
  }

  .root-pathway-list article > .root-scope {
    grid-area: 1 / 1;
    width: clamp(210px, 48vw, 300px);
    height: clamp(210px, 48vw, 300px);
  }

  .root-pathway-list article > div {
    grid-column: 2;
    grid-area: 2 / 1;
  }
}

@media (width <= 560px) {
  .root-pathway-list article > .root-scope {
    box-shadow:
      inset 0 0 0 7px #090b0e,
      inset 0 0 0 9px;
    width: 210px;
    height: 210px;
  }
}

.root-pathways {
  width: min(calc(100% - 3rem), var(--fs-shell-max));
  max-width: var(--fs-shell-max);
  margin-inline: auto;
  padding-block: clamp(4rem, 6vw, 6.5rem);
}

.root-pathways > header {
  grid-template-columns: minmax(360px, 0.72fr) minmax(0, 1fr);
  align-items: end;
  gap: clamp(3rem, 9vw, 9rem);
  display: grid;
  padding-bottom: clamp(2.5rem, 4vw, 3.5rem);
}

@media (width <= 540px) {

  .root-pathways {
    padding-block: 3.5rem 5rem;
  }
}

.root-fs-hero {
  color: #f6f4ef;
  isolation: isolate;
  background: #08090b;
  width: 100%;
  max-width: none;
  margin: 0;
  position: relative;
  overflow: hidden;
  min-height: calc(100svh - 78px);
}

.root-fs-hero-copy {
  z-index: 1;
  width: min(calc(100% - 3rem), var(--fs-shell-max));
  margin-inline: auto;
  position: relative;
  padding-block: clamp(6rem, 11vw, 10rem);
}

.root-fs-hero h1 {
  letter-spacing: -0.055em;
  text-transform: uppercase;
  text-wrap: balance;
  margin: 0;
  font-family:
    FS Display,
    Impact,
    sans-serif;
  font-weight: 800;
  font-size: clamp(4.5rem, 9vw, 9.6rem);
  line-height: 1;
}

.root-fs-hero h1 .root-hero-line {
  max-width: none;
  display: block;
}

.root-fs-hero h1 .root-hero-line + .root-hero-line {
  margin-top: 0.06em;
}

.root-fs-hero h1 .root-hero-line > span {
  color: #f3f1eb;
  letter-spacing: 0;
  transform-origin: 0;
  line-height: 0.74;
  display: block;
  transform: scaleX(1.035);
}

.root-fs-hero h1 .root-hero-line > strong {
  color: #a6281e;
  letter-spacing: 0.035em;
  text-shadow: none;
  transform-origin: 0;
  margin-top: 0.015em;
  font-size: 1.28em;
  line-height: 0.76;
  display: block;
  transform: scaleX(1.035);
}

.root-fs-hero-copy > p:not(.root-kicker) {
  color: #fff;
  max-width: 610px;
  margin: 2.2rem 0 0;
  font-size: 1rem;
  line-height: 1.72;
  margin-top: 2.4rem;
}

.root-fs-hero-copy .root-actions {
  margin-top: 2.2rem;
}

@media (width <= 540px) {
  .root-fs-hero {
    min-height: calc(100svh - 72px);
  }

  .root-fs-hero-media {
    width: 82vw;
    height: 100%;
    inset: 0 0 0 auto;
  }

  .root-fs-hero-media picture { position: relative; }

  .root-fs-hero-media img {
    height: 148%;
    object-position: 68% center;
    position: absolute;
    top: -44%;
    right: 0;
  }

  .root-fs-hero-copy {
    padding-block: 5rem 8rem;
  }

  .root-fs-identity {
    right: auto;
    bottom: 13rem;
    left: 1.25rem;
    max-width: calc(100% - 2.5rem);
    padding-left: 0.9rem;
  }

  .root-fs-identity strong {
    font-size: 1.05rem;
  }

  .root-fs-identity span {
    letter-spacing: 0.11em;
    font-size: 0.6rem;
    line-height: 1.35;
  }

  .root-fs-hero h1 {
    font-size: clamp(2.75rem, 11.2vw, 4rem);
  }
}

@media (height <= 600px) and (width > 900px) {
  .root-fs-identity {
    bottom: 6.5rem;
  }
}

.prayer-page {
  isolation: isolate;
  padding-block: clamp(4.5rem, 7vw, 7rem);
  position: relative;
}

.prayer-copy {
  position: sticky;
  isolation: isolate;
  top: 7rem;
}

.prayer-copy:before {
  content: "";
  z-index: -1;
  aspect-ratio: 1;
  opacity: 0.065;
  filter: grayscale();
  background: url("/assets/icons/stronger-by-grace-header-transparent.png")
    center / contain no-repeat;
  width: min(38vw, 430px);
  position: absolute;
  top: 10rem;
  left: -12%;
}

.prayer-copy .root-heading strong {
  color: #a6281e;
  font: inherit;
}

html[data-theme="dark"] .prayer-copy .root-heading strong {
  color: #fff;
}

.prayer-copy .root-lede {
  color: var(--fs-ink);
}

.prayer-scripture {
  border-left: 4px solid var(--fs-red);
  color: var(--fs-ink);
  margin: 2.5rem 0 0;
  padding: 1.5rem 0 1.5rem 1.5rem;
  font-family:
    FS Serif,
    Georgia,
    serif;
  font-size: clamp(1.15rem, 1.8vw, 1.45rem);
  line-height: 1.55;
}

.prayer-scripture cite {
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin-top: 1rem;
  font-family:
    FS Display,
    Impact,
    sans-serif;
  font-size: 0.78rem;
  font-style: normal;
  display: block;
}

.prayer-scripture a {
  color: var(--fs-red);
  text-decoration: none;
}

html[data-theme="dark"] .prayer-scripture a {
  color: #fff;
}

.prayer-scripture a:is(:hover, :focus-visible) {
  text-decoration: underline;
}

.prayer-form {
  padding: clamp(1.25rem, 4vw, 2.5rem);
  border: 0;
  border-top: 5px solid var(--fs-red);
  background: color-mix(in srgb, var(--fs-surface) 94%, var(--fs-bg));
  box-shadow: none;
  position: relative;
  overflow: hidden;
}

.prayer-form:before {
  content: "";
  aspect-ratio: 1;
  background: var(--fs-ink);
  opacity: 0.045;
  pointer-events: none;
  width: 280px;
  position: absolute;
  top: -90px;
  right: -90px;
  -webkit-mask: url("/assets/root/v1/sniper-reticle.svg") center / contain
    no-repeat;
  mask: url("/assets/root/v1/sniper-reticle.svg") center / contain no-repeat;
}

.prayer-form > * {
  z-index: 1;
  position: relative;
}

.prayer-form legend {
  margin-bottom: 1.4rem;
  letter-spacing: -0.02em;
  text-transform: uppercase;
  font-family:
    FS Display,
    Impact,
    sans-serif;
  font-size: clamp(2.4rem, 4vw, 3.6rem);
  font-weight: 800;
  line-height: 0.9;
}

.prayer-field span {
  font-weight: 850;
  color: var(--fs-ink);
  font-size: 0.88rem;
}

.prayer-field span small {
  font: inherit;
  text-transform: none;
  font-weight: 500;
}

.prayer-status {
  min-height: 1.6rem;
  margin: 1rem 0 0;
  font-weight: 750;
  color: var(--fs-ink);
}

.prayer-field small {
  font-size: 0.75rem;
  line-height: 1.45;
  color: var(--fs-ink);
}

.prayer-contact-note {
  color: var(--fs-ink);
  border-left: 3px solid var(--fs-red);
  grid-column: 1 / -1;
  margin: -0.7rem 0 0.5rem;
  padding-left: 0.85rem;
  font-size: 0.82rem;
}

.prayer-field input,
.prayer-field select {
  border: 1px solid var(--fs-line);
  width: 100%;
  min-height: 48px;
  color: var(--fs-ink);
  font: inherit;
  padding: 0.75rem 0.85rem;
  background: var(--fs-surface);
  border-color: color-mix(in srgb, var(--fs-ink) 28%, transparent);
}

.prayer-field textarea {
  resize: vertical;
  border: 1px solid var(--fs-line);
  width: 100%;
  min-height: 48px;
  color: var(--fs-ink);
  font: inherit;
  padding: 0.75rem 0.85rem;
  background: var(--fs-surface);
  border-color: color-mix(in srgb, var(--fs-ink) 28%, transparent);
}

.prayer-crisis {
  margin: 1rem 0 0;
  padding: 1rem;
  color: var(--fs-ink);
  border: 0;
  border-left: 4px solid var(--fs-red);
  background: var(--fs-surface-2);
  font-size: 0.86rem;
}

@media (width <= 780px) {
  .prayer-copy:before {
    width: 300px;
    top: 3rem;
    left: auto;
    right: -12%;
  }

  .prayer-contact-note {
    grid-column: auto;
  }
}

.for22-dialog {
  background: var(--fs-surface);
  width: min(760px, 100% - 1.25rem);
  max-height: calc(100dvh - 1.25rem);
  color: var(--fs-ink);
  border: 1px solid #5f4a0d;
  padding: 0;
  overflow: auto;
  box-shadow: 0 28px 100px #000000b8;
}

.for22-dialog::backdrop {
  backdrop-filter: blur(7px);
  background: #000000d1;
}

.for22-head {
  background: linear-gradient(
    135deg,
    color-mix(in srgb, #d5a917 15%, var(--fs-surface)),
    var(--fs-surface) 62%
  );
  border-top: 5px solid #d5a917;
  padding: clamp(1.4rem, 4vw, 2.6rem);
  position: relative;
}

.for22-head .root-kicker {
  color: #b78c00;
}

.for22-head h2 {
  letter-spacing: -0.05em;
  text-transform: uppercase;
  max-width: 12ch;
  margin: 0;
  font-family:
    FS Display,
    Impact,
    sans-serif;
  font-size: clamp(3.2rem, 8vw, 6.5rem);
  line-height: 0.75;
}

.for22-head p:last-child {
  max-width: 62ch;
  margin: 1.5rem 0 0;
}

.for22-close {
  border: 1px solid var(--fs-line);
  background: var(--fs-surface);
  width: 44px;
  height: 44px;
  color: var(--fs-ink);
  cursor: pointer;
  place-items: center;
  font-size: 1.6rem;
  display: grid;
  position: absolute;
  top: 1rem;
  right: 1rem;
}

.for22-crisis {
  border-block: 1px solid color-mix(in srgb, #d5a917 45%, var(--fs-line));
  color: #fff;
  background: #171302;
  margin: 0;
  padding: 1rem clamp(1.4rem, 4vw, 2.6rem);
  font-size: 0.86rem;
}

.for22-crisis strong {
  color: #facc15;
}

.for22-form {
  gap: 1rem;
  padding: clamp(1.4rem, 4vw, 2.6rem);
  display: grid;
}

.for22-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  display: grid;
}

.for22-field {
  gap: 0.4rem;
  display: grid;
}

.for22-field--wide {
  grid-column: 1 / -1;
}

.for22-field > span,
.for22-form legend {
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-size: 0.78rem;
  font-weight: 900;
}

.for22-field small {
  color: var(--fs-muted);
  font-size: 0.76rem;
  line-height: 1.45;
}

.for22-field :is(input, select, textarea) {
  border: 1px solid var(--fs-line);
  background: var(--fs-bg);
  width: 100%;
  min-height: 50px;
  color: var(--fs-ink);
  font: inherit;
  padding: 0.75rem 0.85rem;
}

.for22-field textarea {
  resize: vertical;
  min-height: 160px;
}

.for22-authority {
  border: 1px solid color-mix(in srgb, #d5a917 45%, var(--fs-line));
  background: color-mix(in srgb, #d5a917 7%, var(--fs-surface));
  grid-template-columns: auto 1fr;
  align-items: start;
  gap: 0.8rem;
  padding: 1rem;
  display: grid;
}

.for22-authority input {
  width: 1.2rem;
  height: 1.2rem;
  margin-top: 0.2rem;
}

.for22-authority strong {
  display: block;
}

.for22-authority small {
  display: block;
  color: var(--fs-muted);
  margin-top: 0.25rem;
  line-height: 1.45;
}

.for22-private {
  background: color-mix(in srgb, #22c55e 7%, var(--fs-surface));
  border-left: 4px solid #22c55e;
  padding: 1rem;
  font-size: 0.82rem;
}

.for22-private strong {
  display: block;
}

.for22-status {
  min-height: 1.6rem;
  margin: 0;
  font-weight: 800;
}

.for22-status[data-state="error"] {
  color: var(--fs-ink);
}

.for22-status[data-state="success"] {
  background: color-mix(in srgb, #22c55e 8%, var(--fs-surface));
  border-left: 4px solid #22c55e;
  padding: 1rem;
}

.for22-submit {
  color: #fff;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  cursor: pointer;
  background: #b78c00;
  border: 1px solid #b78c00;
  min-height: 54px;
  font-family:
    FS Display,
    Impact,
    sans-serif;
  font-size: 0.86rem;
  font-weight: 800;
}

.for22-submit:is(:hover, :focus-visible) {
  background: #d5a917;
}

.for22-submit:disabled {
  opacity: 0.65;
  cursor: wait;
}

.for22-trap {
  width: 1px !important;
  height: 1px !important;
  position: absolute !important;
  left: -10000px !important;
  overflow: hidden !important;
}

@media (width <= 620px) {
  .for22-grid {
    grid-template-columns: 1fr;
  }

  .for22-field--wide {
    grid-column: auto;
  }

  .for22-dialog {
    width: calc(100% - 0.5rem);
    max-height: calc(100dvh - 0.5rem);
  }
}

.downloads-page {
  padding-block: clamp(4.5rem, 8vw, 8rem);
}

.downloads-intro {
  border-bottom: 4px solid var(--fs-red);
  max-width: 68rem;
  padding-bottom: clamp(2.5rem, 5vw, 4rem);
}

.downloads-manager {
  margin-top: clamp(2.5rem, 5vw, 4.5rem);
}

.downloads-page .offline-manager {
  gap: clamp(1.5rem, 3vw, 2.5rem);
  display: grid;
}

.downloads-page .offline-summary {
  border: 1px solid #3d4147;
  border-top: 4px solid var(--fs-red);
  background: #0a0b0d;
  color: #fff;
  grid-template-columns: minmax(0, 1fr) minmax(12rem, 0.4fr) auto;
  align-items: center;
  gap: clamp(1.25rem, 3vw, 2.5rem);
  padding: clamp(1.5rem, 4vw, 2.75rem);
  display: grid;
}

.downloads-page .offline-summary-copy {
  gap: 0.35rem;
  display: grid;
}

.downloads-page .offline-summary-copy .root-kicker {
  color: #fff;
  margin-bottom: 0.35rem;
}

.downloads-page .offline-summary-status {
  color: #fff;
  font-family:
    FS Display,
    Impact,
    sans-serif;
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  line-height: 1;
  text-transform: uppercase;
}

.downloads-page .offline-storage {
  color: #fff;
  font-size: 0.88rem;
  font-weight: 750;
}

.downloads-page .offline-progress,
.downloads-page .offline-track-progress {
  accent-color: var(--fs-red);
  background: var(--fs-surface-2);
  border: 1px solid var(--fs-line);
  width: 100%;
  height: 0.72rem;
}

.downloads-page .offline-summary .offline-progress {
  background: #fff;
  border-color: #fff;
}

.downloads-page .offline-boundary-note {
  border: 1px solid var(--fs-line);
  border-left: 4px solid var(--fs-red);
  background: var(--fs-surface);
  color: var(--fs-ink);
  margin: 0;
  padding: 1.1rem 1.25rem;
  font-weight: 750;
  font-family:
    FS Serif,
    Georgia,
    serif;
}

.downloads-page .offline-albums {
  gap: 1rem;
  display: grid;
}

.downloads-page .offline-album {
  border: 1px solid var(--fs-line);
  background: var(--fs-surface);
  color: var(--fs-ink);
}

.downloads-page .offline-album-heading {
  cursor: pointer;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 1rem;
  min-height: 5rem;
  padding: 1rem 1.25rem;
  display: grid;
}

.downloads-page .offline-album-heading::after {
  content: "+";
  border: 1px solid currentColor;
  place-items: center;
  width: 2.25rem;
  height: 2.25rem;
  font-size: 1.4rem;
  font-weight: 900;
  line-height: 1;
  display: grid;
}

.downloads-page .offline-album[open] > .offline-album-heading::after {
  content: "−";
}

.downloads-page .offline-album-heading > span {
  gap: 0.2rem;
  display: grid;
}

.downloads-page .offline-album-heading strong {
  font-family:
    FS Display,
    Impact,
    sans-serif;
  font-size: clamp(1.35rem, 2.4vw, 1.9rem);
  line-height: 1;
  text-transform: uppercase;
}

.downloads-page .offline-album-heading small,
.downloads-page .offline-track-copy small {
  color: var(--fs-ink);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 800;
}

.downloads-page .offline-state {
  border: 1px solid var(--fs-line);
  background: var(--fs-surface-2);
  color: var(--fs-ink);
  padding: 0.38rem 0.55rem;
  font-size: 0.72rem;
  font-weight: 900;
  line-height: 1.2;
  text-transform: uppercase;
}

.downloads-page .offline-state[data-state="downloaded"] {
  border-color: #0a0b0d;
  background: #0a0b0d;
  color: #fff;
}

.downloads-page .offline-state[data-state="failed"] {
  border-color: var(--fs-red);
  background: var(--fs-red);
  color: #fff;
}

.downloads-page .offline-state[data-state="waiting"],
.downloads-page .offline-state[data-state="downloading"],
.downloads-page .offline-state[data-state="update"] {
  border-color: var(--fs-red);
  background: transparent;
  color: var(--fs-ink);
}

.downloads-page .offline-album-controls {
  border-top: 1px solid var(--fs-line);
  flex-wrap: wrap;
  gap: 0.75rem;
  padding: 1rem 1.25rem;
  display: flex;
}

.downloads-page .offline-track-list {
  border-top: 1px solid var(--fs-line);
}

.downloads-page .offline-track {
  border-bottom: 1px solid var(--fs-line);
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 0.8rem 1rem;
  padding: 1rem 1.25rem;
  display: grid;
}

.downloads-page .offline-track:last-child {
  border-bottom: 0;
}

.downloads-page .offline-track-copy {
  gap: 0.1rem;
  min-width: 0;
  display: grid;
}

.downloads-page .offline-track-copy strong {
  color: var(--fs-ink);
  overflow-wrap: anywhere;
  font-family:
    FS Serif,
    Georgia,
    serif;
  font-size: 1.08rem;
}

.downloads-page .offline-track-progress {
  grid-column: 1 / -1;
}

.downloads-page .offline-track-progress.is-idle {
  visibility: hidden;
}

.downloads-page .offline-track-actions {
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.55rem;
  display: flex;
}

.downloads-page .root-button:disabled {
  cursor: not-allowed;
  border-color: #3d4147;
  background: #3d4147;
  color: #fff;
  opacity: 1;
  transform: none;
}

@media (width <= 780px) {
  .downloads-page .offline-summary {
    grid-template-columns: 1fr;
  }

  .downloads-page .offline-summary .root-button {
    justify-content: center;
    width: 100%;
  }
}

@media (width <= 620px) {
  .downloads-page {
    padding-block: 3.5rem 6rem;
  }

  .downloads-page .offline-album-heading {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .downloads-page .offline-album-heading .offline-state {
    grid-column: 1 / -1;
    justify-self: start;
  }

  .downloads-page .offline-album-heading::after {
    grid-area: 1 / 2;
  }

  .downloads-page .offline-track {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .downloads-page .offline-track-actions {
    grid-column: 1 / -1;
    justify-content: stretch;
  }

  .downloads-page .offline-track-actions .root-button,
  .downloads-page .offline-album-controls .root-button {
    flex: 1 1 10rem;
    justify-content: center;
  }
}

.root-page-hero {
  isolation: isolate;
  background: #08090b;
  color: #fff;
  grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.62fr);
  align-items: center;
  gap: clamp(3rem, 8vw, 8rem);
  width: 100%;
  max-width: none;
  min-height: min(760px, calc(100svh - 78px));
  margin: 0;
  padding: clamp(5rem, 9vw, 9rem)
    max(5rem, calc((100vw - var(--fs-shell-max)) / 2))
    clamp(6rem, 10vw, 10rem)
    max(1.5rem, calc((100vw - var(--fs-shell-max)) / 2));
  display: grid;
  position: relative;
  overflow: hidden;
}

.root-page-hero::after {
  content: "";
  z-index: 2;
  background: #a6281e;
  height: 4px;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
}

.root-page-hero-copy {
  z-index: 1;
  max-width: 54rem;
  position: relative;
}

.root-page-hero .root-kicker {
  color: #fff;
}

.root-page-hero .root-heading {
  color: #fff;
  max-width: 11ch;
  font-size: clamp(3.8rem, 7.4vw, 7.6rem);
}

.root-page-hero .root-heading strong {
  color: var(--fs-red);
  font-weight: inherit;
  display: block;
}

.root-page-hero .root-lede {
  color: #fff;
  max-width: 49rem;
}

.root-page-hero-detail {
  color: #fff;
  max-width: 46rem;
  margin: 1.25rem 0 0;
  font-size: 1.05rem;
  line-height: 1.72;
}

.root-page-hero .root-actions {
  margin-top: 2.5rem;
}

.root-page-hero-media {
  width: min(100%, 34rem);
  margin: 0;
  position: relative;
}

.root-page-hero-media img {
  aspect-ratio: 1;
  object-fit: cover;
  filter: saturate(0.88) contrast(1.04);
  -webkit-mask-image: radial-gradient(
    ellipse 86% 82% at 50% 46%,
    #000 0 62%,
    #000c 74%,
    transparent 100%
  );
  mask-image: radial-gradient(
    ellipse 86% 82% at 50% 46%,
    #000 0 62%,
    #000c 74%,
    transparent 100%
  );
  width: 100%;
  height: auto;
  display: block;
}

.root-page-hero-media figcaption {
  z-index: 1;
  color: #fff;
  gap: 0.2rem;
  padding: 0;
  display: grid;
  position: absolute;
  bottom: 8%;
  left: 8%;
  text-shadow: 0 2px 16px #000, 0 1px 2px #000;
}

.root-page-hero-media figcaption strong {
  color: #fff;
  font-family:
    FS Display,
    Impact,
    sans-serif;
  font-size: 1.15rem;
  line-height: 1;
  text-transform: uppercase;
}

.root-page-hero-media figcaption span {
  color: #fff;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-size: 0.72rem;
  font-weight: 800;
}

@media (width <= 900px) {
  .root-page-hero {
    grid-template-columns: 1fr;
    min-height: auto;
    padding-right: max(4.5rem, calc((100vw - var(--fs-shell-max)) / 2));
  }

  .root-page-hero-media {
    width: min(100%, 30rem);
  }
}

@media (width <= 620px) {
  .root-page-hero {
    gap: 3rem;
    padding-block: 4.5rem 6rem;
    padding-left: 1.5rem;
    padding-right: 4.5rem;
  }

  .root-page-hero .root-heading {
    font-size: clamp(3rem, 13.4vw, 4.6rem);
  }

  .root-page-hero .root-actions .root-button {
    justify-content: center;
    width: 100%;
  }

}

/* Music directory: local search, album selection, and canonical song rows. */
body[data-page="testimony"] .root-page-hero .root-heading em {
  color: var(--fs-red);
  font-style: normal;
}

body[data-page="testimony"] .root-page-hero {
  grid-template-columns: minmax(0, 1fr) minmax(24rem, 0.95fr);
  min-height: clamp(18rem, 31vw, 24rem);
  padding-block: clamp(2.75rem, 5vw, 4.5rem);
}

body[data-page="testimony"] .root-page-hero .root-heading {
  font-size: clamp(3.5rem, 6.4vw, 6rem);
}

body[data-page="testimony"] .root-page-hero .root-page-hero-detail {
  max-width: 42rem;
  margin-top: 1rem;
}

body[data-page="testimony"] .root-page-hero .root-actions {
  gap: 0.65rem;
  margin-top: 1.2rem;
}

body[data-page="testimony"] .root-page-hero .root-actions .root-button {
  min-height: 42px;
  padding: 0.7rem 1rem;
}

body[data-page="testimony"] .root-page-hero-media {
  z-index: 0;
  width: min(44vw, 42rem);
  height: 100%;
  position: absolute;
  inset-block: 0;
  right: 0;
  pointer-events: none;
}

body[data-page="testimony"] .root-page-hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 86% center;
  filter: saturate(0.58) contrast(1.04) brightness(0.72);
  -webkit-mask-image: linear-gradient(
    to right,
    transparent 0%,
    black 32%,
    black 100%
  );
  mask-image: linear-gradient(
    to right,
    transparent 0%,
    black 32%,
    black 100%
  );
}

/* Downloads uses its artwork as a faded editorial field instead of a boxed
   poster, preserving the shared hero geometry and leaving the copy readable. */
body[data-page="downloads"] .root-page-hero {
  grid-template-columns: minmax(0, 1fr) minmax(24rem, 0.95fr);
}

body[data-page="downloads"] .root-page-hero .root-heading strong {
  color: var(--fs-red);
}

body[data-page="downloads"] .root-page-hero-media {
  z-index: 0;
  width: min(44vw, 42rem);
  height: 100%;
  position: absolute;
  inset-block: 0;
  right: 0;
  pointer-events: none;
}

body[data-page="downloads"] .root-page-hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 72% center;
  filter: saturate(0.54) contrast(1.03) brightness(0.66);
  -webkit-mask-image: linear-gradient(
    to right,
    transparent 0%,
    black 34%,
    black 100%
  );
  mask-image: linear-gradient(
    to right,
    transparent 0%,
    black 34%,
    black 100%
  );
}

body[data-page="downloads"] .root-page-hero-media figcaption {
  display: none;
}

body[data-page="testimony"] .song-index {
  width: min(calc(100% - 2.5rem), var(--fs-shell-max));
  margin-inline: auto;
  padding-block: clamp(2.75rem, 5vw, 4.5rem);
  color: var(--fs-ink);
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}

body[data-page="testimony"] .song-directory-intro {
  grid-column: 1 / -1;
  max-width: 68rem;
}

body[data-page="testimony"] .song-directory-intro h2 {
  max-width: 11ch;
  margin: 0;
  color: var(--fs-ink);
  letter-spacing: -0.05em;
  text-transform: uppercase;
  font-family:
    FS Display,
    Impact,
    sans-serif;
  font-size: clamp(2.8rem, 5vw, 4.8rem);
  line-height: 0.86;
}

body[data-page="testimony"] .song-directory-intro h2 strong {
  color: var(--fs-red);
}

body[data-page="testimony"] .song-directory-intro > p:not(.root-kicker) {
  max-width: 58rem;
  margin: 1.75rem 0 0;
  color: var(--fs-ink);
  font-family:
    FS Serif,
    Georgia,
    serif;
  font-size: clamp(1.1rem, 1.8vw, 1.4rem);
  line-height: 1.55;
}

body[data-page="testimony"] .song-directory-enhancement {
  border-bottom: 1px solid var(--fs-line);
  grid-template-columns: minmax(0, 1fr) minmax(14rem, 0.45fr) auto;
  align-items: end;
  gap: 1.5rem;
  margin-top: clamp(2.5rem, 5vw, 4rem);
  padding-bottom: 2rem;
  display: grid;
}

body[data-page="testimony"] .song-directory-search,
body[data-page="testimony"] .song-directory-album {
  gap: 0.5rem;
  display: grid;
}

body[data-page="testimony"] .song-directory-search > span,
body[data-page="testimony"] .song-directory-album > span {
  color: var(--fs-ink);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-family:
    FS Display,
    Impact,
    sans-serif;
  font-size: 0.8rem;
  font-weight: 800;
}

body[data-page="testimony"] .song-directory-search input,
body[data-page="testimony"] .song-directory-album select {
  border: 0;
  border-bottom: 2px solid var(--fs-ink);
  background: transparent;
  width: 100%;
  min-height: 52px;
  color: var(--fs-ink);
  padding: 0.5rem 0;
  font: inherit;
  font-size: 1.05rem;
}

body[data-page="testimony"] .song-directory-search input::placeholder {
  color: var(--fs-ink);
  opacity: 1;
}

body[data-page="testimony"] .song-directory-clear {
  border-color: var(--fs-ink);
  background: transparent;
  min-height: 44px;
  color: var(--fs-ink);
}

body[data-page="testimony"] .song-directory-status,
body[data-page="testimony"] .song-directory-empty {
  min-height: 1.65rem;
  margin: 0;
  color: var(--fs-ink);
  font-weight: 800;
}

body[data-page="testimony"] .song-directory-empty {
  border-top: 2px solid var(--fs-red);
  margin-top: 2rem;
  padding-top: 1.25rem;
}

body[data-page="testimony"] .song-directory-status {
  grid-column: 1 / -1;
}

body[data-page="testimony"] .song-albums {
  margin-top: clamp(3.5rem, 7vw, 6rem);
}

body[data-page="testimony"] .song-compilations {
  margin-top: clamp(3rem, 6vw, 5rem);
}

body[data-page="testimony"] .song-compilations-intro {
  margin-bottom: clamp(2.5rem, 5vw, 4rem);
}

body[data-page="testimony"] .song-album-group {
  border-top: 4px solid var(--fs-red);
  scroll-margin-top: 7rem;
  padding-block: clamp(2rem, 4vw, 3.5rem) clamp(4rem, 7vw, 6rem);
}

body[data-page="testimony"] .song-album-group[hidden],
body[data-page="testimony"] .song-index-link[hidden] {
  display: none;
}

body[data-page="testimony"] .song-album-header {
  grid-template-columns: minmax(14rem, 22rem) minmax(0, 1fr);
  align-items: center;
  gap: clamp(2rem, 5vw, 5rem);
  margin-bottom: clamp(2rem, 4vw, 3.5rem);
  display: grid;
}

body[data-page="testimony"] .song-album-art {
  aspect-ratio: 1;
  margin: 0;
  position: relative;
}

body[data-page="testimony"] .song-compilation-art {
  aspect-ratio: 16 / 9;
}

body[data-page="testimony"] .song-album-art img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

body[data-page="testimony"] .song-album-copy {
  min-width: 0;
}

body[data-page="testimony"] .song-album-header .root-kicker {
  margin-bottom: 0;
  color: var(--fs-red);
}

body[data-page="testimony"] .song-album-header h3 {
  margin: 0;
  color: var(--fs-ink);
  letter-spacing: -0.04em;
  text-transform: uppercase;
  font-family:
    FS Display,
    Impact,
    sans-serif;
  font-size: clamp(2.6rem, 5vw, 5rem);
  line-height: 0.85;
}

body[data-page="testimony"] .song-album-subtitle,
body[data-page="testimony"] .song-album-description {
  max-width: 34rem;
  margin: 1rem 0 0;
  color: var(--fs-ink);
  font-family:
    FS Serif,
    Georgia,
    serif;
  font-size: clamp(1.05rem, 1.8vw, 1.35rem);
  line-height: 1.5;
}

body[data-page="testimony"] .song-album-description {
  max-width: 48rem;
}

body[data-page="testimony"] .song-album-status {
  margin: 1rem 0 0;
  color: var(--fs-ink);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-family:
    FS Display,
    Impact,
    sans-serif;
  font-size: 0.78rem;
  font-weight: 800;
}

body[data-page="testimony"] .song-album-action {
  border-bottom: 2px solid var(--fs-red);
  align-items: center;
  min-height: 44px;
  margin-top: 1rem;
  color: var(--fs-ink);
  font-family:
    FS Display,
    Impact,
    sans-serif;
  font-weight: 800;
  text-decoration: none;
  display: inline-flex;
}

body[data-page="testimony"] .song-index-list {
  border-bottom: 1px solid var(--fs-line);
}

body[data-page="testimony"] .song-index-link {
  border-top: 1px solid var(--fs-line);
  grid-template-columns: clamp(8rem, 13vw, 11rem) minmax(0, 1fr) auto auto;
  align-items: center;
  gap: clamp(0.8rem, 2vw, 1.5rem);
  min-height: 9rem;
  color: var(--fs-ink);
  padding-block: 1.25rem;
  font-family:
    FS Display,
    Impact,
    sans-serif;
  display: grid;
}

body[data-page="testimony"] .song-row-art {
  aspect-ratio: 1;
  width: 100%;
  min-width: 0;
  color: var(--fs-ink);
  display: block;
}

body[data-page="testimony"] .song-row-art img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

body[data-page="testimony"] .song-row-copy {
  min-width: 0;
}

body[data-page="testimony"] .song-row-copy > p:first-child {
  align-items: center;
  gap: 0.75rem;
  margin: 0 0 0.35rem;
  display: flex;
}

body[data-page="testimony"] .song-row-copy b {
  color: var(--fs-red);
  letter-spacing: 0.12em;
  font-size: 0.78rem;
}

body[data-page="testimony"] .song-row-copy h4 {
  margin: 0;
}

body[data-page="testimony"] .song-row-copy h4 a {
  color: var(--fs-red);
  overflow-wrap: anywhere;
  font-size: clamp(1.12rem, 2vw, 1.45rem);
  font-weight: 800;
  line-height: 1.2;
  text-decoration: none;
}

body[data-page="testimony"] .song-row-copy small,
body[data-page="testimony"] .song-row-duration {
  color: var(--fs-ink);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 0.72rem;
  font-weight: 800;
}

body[data-page="testimony"] .song-row-copy small {
  white-space: nowrap;
}

body[data-page="testimony"] .song-row-summary {
  max-width: 58rem;
  margin: 0.55rem 0 0;
  color: var(--fs-ink);
  font-family:
    FS Serif,
    Georgia,
    serif;
  font-size: 1rem;
  line-height: 1.5;
}

body[data-page="testimony"] .song-row-duration {
  min-width: 3.2rem;
  text-align: center;
}

body[data-page="testimony"] .song-row-actions {
  align-items: center;
  gap: 0.75rem;
  display: flex;
}

body[data-page="testimony"] :is(.song-row-favorite, .song-row-play, .song-row-download, .song-row-context) {
  border: 0;
  border-bottom: 2px solid var(--fs-red);
  background: transparent;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  min-width: 48px;
  min-height: 48px;
  color: var(--fs-ink);
  padding: 0.55rem 0.7rem;
  font-family:
    FS Display,
    Impact,
    sans-serif;
  font-size: 0.74rem;
  font-weight: 800;
  text-decoration: none;
  text-transform: uppercase;
  cursor: pointer;
  display: inline-flex;
}

body[data-page="testimony"] .song-row-favorite[aria-pressed="true"] {
  color: var(--fs-red);
}

body[data-page="testimony"] :is(.song-row-art, .song-row-copy h4 a, .song-row-favorite, .song-row-play, .song-row-download, .song-row-context):focus-visible {
  outline: 3px solid var(--fs-red);
  outline-offset: 4px;
}

body[data-page="testimony"] :is(.song-row-art, .song-row-copy h4 a):is(:hover, :focus-visible) {
  text-decoration: underline;
  text-decoration-color: var(--fs-red);
}

@media (width <= 900px) {
  body[data-page="testimony"] .root-page-hero {
    grid-template-columns: 1fr;
  }

  body[data-page="downloads"] .root-page-hero {
    grid-template-columns: 1fr;
  }

  body[data-page="testimony"] .root-page-hero-media {
    width: 100%;
  }

  body[data-page="downloads"] .root-page-hero-media {
    width: 100%;
  }

  body[data-page="testimony"] .root-page-hero-media img {
    object-position: 86% center;
    -webkit-mask-image: linear-gradient(
      to right,
      transparent 0%,
      transparent 35%,
      black 82%,
      black 100%
    );
    mask-image: linear-gradient(
      to right,
      transparent 0%,
      transparent 35%,
      black 82%,
      black 100%
    );
  }

  body[data-page="downloads"] .root-page-hero-media img {
    object-position: 72% center;
    -webkit-mask-image: linear-gradient(
      to right,
      transparent 0%,
      transparent 35%,
      black 82%,
      black 100%
    );
    mask-image: linear-gradient(
      to right,
      transparent 0%,
      transparent 35%,
      black 82%,
      black 100%
    );
  }
}

@media (width <= 700px) {
  body[data-page="testimony"] .song-index {
    width: min(calc(100% - 1.5rem), var(--fs-shell-max));
    padding-bottom: 7rem;
  }

  body[data-page="testimony"] .song-album-header {
    grid-template-columns: 1fr;
  }

  body[data-page="testimony"] .song-album-art {
    width: min(100%, 24rem);
  }

  body[data-page="testimony"] .song-directory-enhancement {
    grid-template-columns: 1fr;
  }

  body[data-page="testimony"] .song-directory-clear {
    justify-content: center;
    width: 100%;
  }

  body[data-page="testimony"] .song-index-link {
    grid-template-columns: clamp(7.5rem, 30vw, 9.5rem) minmax(0, 1fr);
    align-items: start;
  }

  body[data-page="testimony"] .song-row-duration,
  body[data-page="testimony"] .song-row-actions {
    grid-column: 2;
    text-align: left;
  }

  body[data-page="testimony"] .song-row-actions {
    flex-wrap: wrap;
  }

  body[data-page="testimony"] :is(.song-row-favorite, .song-row-play) {
    min-width: 52px;
    min-height: 52px;
  }
}

/* Shared shell host stays in normal flow while remaining visible during page scroll. */
[data-fs-shell="header"] {
  z-index: 45;
  position: sticky;
  top: 0;
}

/* 2026-08-27 mobile hardening. Keep this block additive so the approved desktop
   projection and the canonical player release remain byte-for-byte reviewable. */
.fs-shell-masthead {
  padding-top: env(safe-area-inset-top, 0px);
}

.fs-shell-header,
.fs-shell-footer {
  width: min(
    calc(100% - max(1.25rem, env(safe-area-inset-left, 0px)) - max(1.25rem, env(safe-area-inset-right, 0px))),
    var(--fs-shell-max)
  );
}

.fs-shell-nav {
  left: max(1.25rem, env(safe-area-inset-left, 0px), calc((100vw - var(--fs-shell-max)) / 2));
  max-height: min(
    46rem,
    calc(var(--fs-visual-viewport-height, 100dvh) - 5rem - env(safe-area-inset-top, 0px))
  );
}

.fs-shell-rail {
  right: env(safe-area-inset-right, 0px);
}

.fs-shell-consent {
  left: max(1rem, env(safe-area-inset-left, 0px));
  bottom: max(1rem, calc(10.5rem + env(safe-area-inset-bottom, 0px)));
  width: min(
    34rem,
    calc(100% - max(2rem, env(safe-area-inset-left, 0px) + env(safe-area-inset-right, 0px) + 2rem))
  );
}

.fs-shell-consent button,
.fs-shell-privacy-actions button,
.fs-shell-dialog-close {
  min-width: 48px;
  min-height: 48px;
}

.fs-shell-dialog-close {
  width: 48px;
  height: 48px;
  top: max(1rem, env(safe-area-inset-top, 0px));
  right: max(1rem, env(safe-area-inset-right, 0px));
}

.fs-shell-privacy {
  width: min(
    38rem,
    calc(100% - max(1rem, env(safe-area-inset-left, 0px) + env(safe-area-inset-right, 0px) + 1rem))
  );
  max-height: calc(var(--fs-visual-viewport-height, 100dvh) - 1rem);
  overflow: auto;
  overscroll-behavior: contain;
}

.root-pwa-update {
  z-index: 80;
  border: 1px solid #a6281e;
  background: #0b0c0e;
  color: #fff;
  width: min(
    25rem,
    calc(100% - max(2rem, env(safe-area-inset-left, 0px) + env(safe-area-inset-right, 0px) + 2rem))
  );
  padding: 1rem;
  box-shadow: 0 1rem 3rem #00000059;
  font: 700 1rem/1.35 system-ui, sans-serif;
  position: fixed;
  top: max(5.5rem, calc(env(safe-area-inset-top, 0px) + 5rem));
  right: max(1rem, env(safe-area-inset-right, 0px));
}

.root-pwa-update p {
  margin: 0 0 0.75rem;
}

.root-pwa-update div {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.root-pwa-update button {
  border: 1px solid #fff;
  background: transparent;
  color: #fff;
  min-width: 48px;
  min-height: 48px;
  padding: 0.65rem 1rem;
  font: inherit;
  cursor: pointer;
}

.root-pwa-update [data-pwa-update] {
  border-color: #a6281e;
  background: #a6281e;
}

.prayer-honeypot,
.for22-trap {
  clip-path: inset(50%) !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  border: 0 !important;
  white-space: nowrap !important;
  position: fixed !important;
  inset: 0 auto auto 0 !important;
  overflow: hidden !important;
}

.prayer-honeypot input,
.for22-trap input {
  width: 1px !important;
  min-width: 0 !important;
  height: 1px !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

.prayer-copy {
  overflow: clip;
}

.for22-dialog {
  border-color: #a6281e;
  width: min(
    760px,
    calc(100% - max(1rem, env(safe-area-inset-left, 0px) + env(safe-area-inset-right, 0px) + 1rem))
  );
  max-height: calc(var(--fs-visual-viewport-height, 100dvh) - 1rem);
  overscroll-behavior: contain;
}

.for22-head {
  border-top-color: #a6281e;
  background: var(--fs-surface);
}

.for22-head .root-kicker,
.for22-crisis strong {
  color: #a6281e;
}

.for22-crisis,
.for22-authority {
  border-color: #a6281e;
}

.for22-submit {
  border-color: #a6281e;
  background: #a6281e;
}

.for22-close {
  width: 48px;
  height: 48px;
  top: max(1rem, env(safe-area-inset-top, 0px));
  right: max(1rem, env(safe-area-inset-right, 0px));
}

@media (pointer: coarse), (width <= 1024px) {
  :is(
    input:not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="color"]),
    select,
    textarea,
    [contenteditable]:not([contenteditable="false"]),
    [role="combobox"]
  ) {
    font-size: 16px;
  }

  .fs-shell-wordmark,
  .fs-shell-mark,
  .fs-shell-prayer,
  .fs-shell-nav a,
  .fs-shell-footer nav a,
  .root-button,
  .root-text-link,
  .root-pathway-list nav a,
  .song-album-action {
    min-height: 48px;
  }

  .fs-shell-wordmark,
  .fs-shell-mark,
  .fs-shell-footer nav a {
    align-items: center;
  }

  .fs-shell-wordmark {
    align-content: center;
    grid-template-rows: auto auto;
    display: inline-grid;
  }

  .fs-shell-wordmark span,
  .fs-shell-wordmark strong {
    display: block;
  }

  .fs-shell-mark,
  .fs-shell-footer nav a {
    display: inline-flex;
  }

  .fs-shell-mark,
  .fs-shell-mark img {
    width: 48px;
    height: 48px;
  }
}

@media (width <= 900px) {
  :is(
    .root-fs-hero-copy,
    .root-music-copy,
    .root-music-art,
    .root-pathways,
    .root-pathways > header,
    .root-pathways > header > *,
    .root-testimony-modern > *,
    .root-boundary > *,
    .root-page-hero-copy,
    .root-page-hero-media,
    .greg-section-inner,
    .profile-copy,
    .prayer-layout,
    .prayer-copy,
    .prayer-form,
    .downloads-manager,
    .offline-manager,
    .song-index,
    .song-album-header,
    .song-album-copy,
    .song-index-link,
    .song-row-copy
  ) {
    min-width: 0;
    max-width: 100%;
  }

  .root-music-story,
  .root-testimony-modern,
  .root-boundary {
    grid-template-columns: minmax(0, 1fr);
    padding-left: max(1.25rem, env(safe-area-inset-left, 0px));
    padding-right: max(1.25rem, env(safe-area-inset-right, 0px));
  }

  .root-music-art {
    width: 100%;
  }

  .root-pathways {
    width: auto;
    max-width: var(--fs-shell-max);
    margin-left: max(1rem, env(safe-area-inset-left, 0px));
    margin-right: max(1rem, env(safe-area-inset-right, 0px));
  }

  .root-pathways > header {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.75rem;
    display: grid;
  }

  .root-pathways > header > * {
    grid-column: 1;
    width: auto;
    margin-inline: 0;
  }

  .root-pathways > header h2 {
    margin-block: 0;
  }

  .root-boundary > .root-kicker {
    grid-column: auto;
    margin-bottom: 0;
  }

  :is(.root-title, .root-heading, .root-fs-hero h1, .root-pathways h2, .root-testimony-modern h2, .song-directory-intro h2, .song-album-header h3) {
    max-width: 100%;
    overflow-wrap: anywhere;
  }

  body[data-page="greg"] :is(.root-hero, .profile-section) > .greg-section-inner {
    width: auto;
    margin-left: max(0.75rem, env(safe-area-inset-left, 0px));
    margin-right: max(0.75rem, env(safe-area-inset-right, 0px));
  }
}

@media (width <= 700px) {
  .fs-shell-header {
    width: calc(
      100% - max(0.5rem, env(safe-area-inset-left, 0px)) - max(0.5rem, env(safe-area-inset-right, 0px))
    );
  }

  .fs-shell-nav {
    width: min(360px, calc(100vw - 1rem));
    left: max(0.5rem, env(safe-area-inset-left, 0px));
  }

  .fs-shell-menu {
    width: 48px;
    height: 48px;
    flex-basis: 48px;
  }

  .fs-shell-footer {
    width: auto;
    margin-left: max(1rem, env(safe-area-inset-left, 0px));
    margin-right: max(1rem, env(safe-area-inset-right, 0px));
    padding-bottom: calc(11rem + env(safe-area-inset-bottom, 0px));
    align-items: center;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    text-align: center;
  }

  .fs-shell-footer > p:first-child {
    width: min(100%, 34rem);
    line-height: 1.55;
  }

  .fs-shell-footer > p:first-child .fs-shell-wordmark {
    justify-content: center;
    margin-inline: auto;
    margin-bottom: 0.75rem;
  }

  .fs-shell-footer nav {
    width: min(100%, 34rem);
    justify-content: center;
    gap: 0.25rem 0.75rem;
  }

  .fs-shell-footer nav a {
    justify-content: center;
    padding-inline: 0.45rem;
  }

  .fs-shell-footer .fs-shell-fine {
    width: 100%;
    padding-top: 1.25rem;
    text-align: center;
  }

  .fs-shell-wordmark strong {
    align-items: baseline;
    column-gap: 0.12rem;
    font-size: 0.88rem;
    display: flex;
  }

  .fs-shell-wordmark strong em {
    font-size: 1.32em;
    line-height: 0.82;
  }

  .fs-shell-mark {
    width: 60px;
    height: 60px;
    flex: 0 0 60px;
  }

  .fs-shell-mark img {
    width: 58px;
    height: 58px;
    object-fit: contain;
  }

  .fs-shell-rail-toggle {
    width: 52px;
    height: 52px;
  }

  .root-page-hero {
    padding-left: max(1.25rem, env(safe-area-inset-left, 0px));
    padding-right: max(1.25rem, env(safe-area-inset-right, 0px));
  }

  body[data-page="testimony"] .song-index {
    width: auto;
    margin-left: max(0.75rem, env(safe-area-inset-left, 0px));
    margin-right: max(0.75rem, env(safe-area-inset-right, 0px));
    padding-bottom: calc(11rem + env(safe-area-inset-bottom, 0px));
  }

  body[data-page="testimony"] .song-index-link {
    grid-template-columns: clamp(6rem, 29vw, 8rem) minmax(0, 1fr);
    gap: 0.9rem;
  }

  body[data-page="testimony"] .song-row-duration,
  body[data-page="testimony"] .song-row-actions {
    grid-column: 1 / -1;
  }

  body[data-page="testimony"] .song-row-duration {
    text-align: left;
  }

  body[data-page="testimony"] .song-row-actions > * {
    flex: 0 0 auto;
  }

  .downloads-page .offline-album-heading,
  .downloads-page .offline-track,
  .directory-card {
    min-width: 0;
  }

  .downloads-page .offline-state,
  .song-row-copy small,
  .directory-card :is(small, i) {
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .for22-dialog {
    width: calc(
      100% - max(0.5rem, env(safe-area-inset-left, 0px)) - max(0.5rem, env(safe-area-inset-right, 0px))
    );
    max-height: calc(var(--fs-visual-viewport-height, 100dvh) - 0.5rem);
  }

  .for22-head,
  .for22-form {
    padding-left: max(1.25rem, env(safe-area-inset-left, 0px));
    padding-right: max(1.25rem, env(safe-area-inset-right, 0px));
  }

  #canonical-player-host fs-canonical-player .dialog-layer {
    padding:
      env(safe-area-inset-top, 0px)
      env(safe-area-inset-right, 0px)
      env(safe-area-inset-bottom, 0px)
      env(safe-area-inset-left, 0px);
  }

  #canonical-player-host fs-canonical-player .song-dialog {
    width: 100%;
    max-height: var(--fs-visual-viewport-height, 100dvh);
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) {
    min-height: 148px;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    grid-template-areas:
      "art copy copy previous play next"
      "progress shuffle repeat volume minimize open";
    grid-template-rows: 76px 52px;
    gap: 4px 0;
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .transport {
    display: contents;
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .player-art {
    width: 44px;
    height: 44px;
    place-self: center;
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .player-copy {
    align-self: center;
    overflow: visible;
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .player-album-name small {
    display: -webkit-box;
    max-height: 2.2em;
    overflow: hidden;
    font-size: 0.58rem;
    line-height: 1.1;
    text-overflow: clip;
    white-space: normal;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .player-song-name {
    overflow: visible;
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .player-song-name strong {
    display: -webkit-box;
    max-height: 3.15em;
    overflow: hidden;
    font-size: clamp(0.7rem, 3vw, 0.82rem);
    line-height: 1.05;
    text-overflow: clip;
    white-space: normal;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    line-clamp: 3;
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .player-download-status {
    max-width: 100%;
    overflow: visible;
    font-size: 0;
    text-overflow: clip;
    white-space: nowrap;
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .player-download-status::after {
    content: "Online only";
    overflow: hidden;
    font-size: 0.62rem;
    text-overflow: clip;
    white-space: nowrap;
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .player-download-status.waiting::after {
    content: "Waiting to save";
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .player-download-status.downloading::after {
    content: "Saving offline";
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .player-download-status.ready::after {
    content: "Saved offline";
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .player-download-status.error::after {
    content: "Save failed";
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .transport button:nth-child(1) {
    grid-area: shuffle;
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .transport button:nth-child(2) {
    grid-area: previous;
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .transport .main-play {
    grid-area: play;
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .transport button:nth-child(4) {
    grid-area: next;
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .transport .repeat-mode {
    grid-area: repeat;
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .timeline-toggle {
    grid-area: progress;
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .volume-control {
    grid-area: volume;
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .player-minimize {
    grid-area: minimize;
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .player-open {
    grid-area: open;
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) :is(
    .timeline-toggle,
    .volume-toggle,
    .player-minimize,
    .player-open,
    .transport button
  ) {
    place-self: center;
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .transport .main-play {
    width: 48px;
    height: 48px;
    min-width: 48px;
    min-height: 48px;
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) :is(
    .timeline-toggle,
    .volume-control,
    .player-minimize,
    .player-open,
    .transport button:nth-child(1),
    .transport .repeat-mode
  ) {
    align-self: end;
  }

  #canonical-player-host fs-canonical-player .dialog-close,
  #canonical-player-host fs-canonical-player .song-dialog > header .song-dialog-actions :is(button, a),
  #canonical-player-host fs-canonical-player .song-dialog > header .song-social-links a {
    min-width: 48px;
    min-height: 48px;
  }

}

/* Give iPad Mini portrait a balanced two-row player instead of squeezing seven columns together. */
@media (701px <= width <= 820px) and (min-height: 501px) {
  #canonical-player-host fs-canonical-player .player:not(.player-minimized) {
    width: calc(100vw - 1.5rem);
    height: 138px;
    padding: 0.6rem 0.75rem;
    grid-template-columns: repeat(8, minmax(0, 1fr));
    grid-template-areas:
      "art copy copy copy previous play next open"
      "shuffle repeat timeline timeline timeline volume minimize minimize";
    grid-template-rows: 58px 48px;
    gap: 0.35rem 0.25rem;
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .transport {
    display: contents;
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .player-art {
    width: 52px;
    height: 52px;
    place-self: center;
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .player-copy {
    min-width: 0;
    align-self: center;
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .transport button:nth-child(1) { grid-area: shuffle; }
  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .transport button:nth-child(2) { grid-area: previous; }
  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .transport .main-play { grid-area: play; }
  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .transport button:nth-child(4) { grid-area: next; }
  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .transport .repeat-mode { grid-area: repeat; }
  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .timeline { grid-area: timeline; width: 100%; min-width: 0; }
  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .timeline-toggle { display: none; }
  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .volume-control { grid-area: volume; }
  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .player-minimize { grid-area: minimize; }
  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .player-open { grid-area: open; }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) :is(
    .volume-toggle,
    .player-minimize,
    .player-open,
    .transport button
  ) {
    place-self: center;
    width: 42px;
    height: 42px;
    min-width: 42px;
    min-height: 42px;
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .transport .main-play {
    width: 48px;
    height: 48px;
    min-width: 48px;
    min-height: 48px;
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .repeat-mode-badge {
    inset: -4px -4px auto auto;
  }
}

/* Keep the full player inside wider tablet viewports without changing its live DOM. */
@media (821px <= width <= 900px) and (min-height: 501px) {
  #canonical-player-host fs-canonical-player .player:not(.player-minimized) {
    width: calc(100vw - 2rem);
    padding-inline: 0.75rem;
    grid-template-columns:
      60px minmax(120px, 150px) minmax(190px, auto) minmax(90px, 1fr)
      44px 40px 44px;
    gap: 0.4rem;
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .player-art {
    width: 60px;
    height: 60px;
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .transport {
    gap: 0.2rem;
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .transport button {
    width: 44px;
    height: 44px;
    min-width: 44px;
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .transport .main-play {
    width: 48px;
    height: 48px;
    min-width: 48px;
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) :is(.player-album-name, .player-song-name) {
    line-height: 1.1;
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .player-song-name strong {
    font-size: 0.82rem;
    line-height: 1.1;
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) :is(
    .volume-toggle,
    .player-minimize,
    .player-open
  ) {
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .player-download-status {
    overflow: visible;
    font-size: 0;
    text-overflow: clip;
    white-space: nowrap;
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .player-download-status::after {
    content: "Online only";
    font-size: 0.62rem;
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .player-download-status.waiting::after {
    content: "Waiting to save";
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .player-download-status.downloading::after {
    content: "Saving offline";
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .player-download-status.ready::after {
    content: "Saved offline";
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .player-download-status.error::after {
    content: "Save failed";
  }
}

@media (width >= 701px) {
  .fs-shell-header .fs-shell-mark {
    width: 66px;
    height: 66px;
    flex: 0 0 66px;
  }

  .fs-shell-header .fs-shell-mark img {
    width: 64px;
    height: 64px;
    object-fit: contain;
  }
}

@media (width <= 440px) {
  .fs-shell-prayer {
    min-width: 48px;
    padding-inline: 0.6rem;
  }

  .root-fs-hero-copy {
    width: auto;
    margin-left: max(1.25rem, env(safe-area-inset-left, 0px));
    margin-right: max(1.25rem, env(safe-area-inset-right, 0px));
  }

  .root-fs-hero h1 .root-hero-line > :is(span, strong) {
    max-width: 100%;
    transform: none;
  }

  .root-genres {
    width: 100%;
    max-width: 22rem;
    justify-content: center;
    gap: 0.15rem 0.75rem;
    margin-inline: auto;
    padding-block: 0.35rem;
    text-align: center;
  }

  .root-genres span {
    width: auto;
    flex: 0 0 auto;
    padding: 0.7rem 0;
  }

  .root-genres span + span::before {
    display: none;
  }

  .root-genres span:not(:last-child)::after {
    content: "/";
    color: #a6281e;
    margin-left: 0.75rem;
  }

  .root-pathway-list {
    margin-inline: 0;
  }

  .root-pathway-list article {
    padding-inline: 1rem;
  }

  .root-pathway-list article > div {
    min-width: 0;
    padding: 1rem;
  }

  .root-testimony-modern h2,
  .root-pathway-list h3 {
    font-size: clamp(3.2rem, 18vw, 5rem);
  }

  .prayer-form,
  .downloads-page .offline-summary,
  .downloads-page .offline-album-heading,
  .downloads-page .offline-track {
    padding-inline: 1rem;
  }

  .directory-card {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .directory-card b {
    grid-column: 1 / -1;
  }

  body[data-page="testimony"] .song-album-art {
    width: 100%;
  }

  body[data-page="testimony"] .song-row-summary {
    font-size: 0.94rem;
  }
}

@media (width <= 340px) {
  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .player-album-name small {
    font-size: 0.52rem;
  }

  #canonical-player-host fs-canonical-player .player:not(.player-minimized) .player-song-name strong {
    font-size: 0.72rem;
  }
}

@media (max-height: 500px) {
  .fs-shell-footer {
    padding-bottom: calc(11rem + env(safe-area-inset-bottom, 0px));
  }

  .fs-shell-nav {
    max-height: calc(var(--fs-visual-viewport-height, 100dvh) - 4.5rem - env(safe-area-inset-top, 0px));
  }

  .root-page-hero,
  .root-fs-hero-copy,
  .root-music-story,
  .root-testimony-modern,
  .root-boundary {
    padding-top: 3rem;
    padding-bottom: 11rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .root-music-art img,
  .root-pwa-update,
  #canonical-player-host fs-canonical-player * {
    scroll-behavior: auto;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

html,
.fs-shell-nav,
.fs-shell-privacy,
.for22-dialog,
#canonical-player-host fs-canonical-player .song-dialog {
  scrollbar-color: #a6281e transparent;
  scrollbar-width: thin;
}

/* Page scrolling remains native for the header navigation and page-tools rail,
   including mobile pull-to-refresh. Lock it only for an actual dialog or story
   layer; changing root overflow while a sticky menu is open resets the mobile
   scroll position and can move the navigation out of the visual viewport. */
html:is(
  :has(dialog[open]),
  :has(#canonical-player-host fs-canonical-player .dialog-layer)
),
html:is(
  :has(dialog[open]),
  :has(#canonical-player-host fs-canonical-player .dialog-layer)
) body {
  overflow: hidden;
  overscroll-behavior: none;
}

main [id] {
  scroll-margin-top: calc(5.5rem + env(safe-area-inset-top, 0px));
}

@supports selector(::-webkit-scrollbar) {
  html::-webkit-scrollbar,
  .fs-shell-nav::-webkit-scrollbar,
  .fs-shell-privacy::-webkit-scrollbar,
  .for22-dialog::-webkit-scrollbar,
  #canonical-player-host fs-canonical-player .song-dialog::-webkit-scrollbar {
    width: 6px;
    height: 6px;
  }

  html::-webkit-scrollbar-track,
  .fs-shell-nav::-webkit-scrollbar-track,
  .fs-shell-privacy::-webkit-scrollbar-track,
  .for22-dialog::-webkit-scrollbar-track,
  #canonical-player-host fs-canonical-player .song-dialog::-webkit-scrollbar-track {
    background: transparent;
  }

  html::-webkit-scrollbar-thumb,
  .fs-shell-nav::-webkit-scrollbar-thumb,
  .fs-shell-privacy::-webkit-scrollbar-thumb,
  .for22-dialog::-webkit-scrollbar-thumb,
  #canonical-player-host fs-canonical-player .song-dialog::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: #a6281e;
  }
}

/* Song-specific Archivist: a dismissible reading layer above the persistent,
   X-only canonical song story. */
.song-archivist-dialog {
  width: min(900px, calc(100vw - 2rem));
  max-width: none;
  max-height: min(82dvh, 920px);
  margin: auto;
  padding: 0;
  overflow: auto;
  overscroll-behavior: contain;
  border: 1px solid var(--fs-ink);
  border-radius: 0;
  background: var(--fs-surface);
  color: var(--fs-ink);
  box-shadow: none;
  scrollbar-color: var(--fs-red) transparent;
  scrollbar-width: thin;
}

.song-archivist-dialog::backdrop {
  background: #000000b8;
}

.song-archivist-inner {
  position: relative;
  padding: clamp(2rem, 5vw, 3.5rem);
}

.song-archivist-close {
  position: sticky;
  z-index: 2;
  top: 0;
  float: right;
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  margin: 0 0 1rem 1rem;
  border: 1px solid var(--fs-line);
  border-radius: 0;
  background: var(--fs-surface);
  color: var(--fs-ink);
  font: 800 1.4rem/1 system-ui, sans-serif;
  cursor: pointer;
}

.song-archivist-head {
  padding-right: 4rem;
}

.song-archivist-head h2 {
  max-width: 16ch;
  margin: 0.35rem 0 2rem;
  font-family: "Source Serif 4", Georgia, serif;
  font-size: clamp(2.2rem, 5vw, 4.2rem);
  line-height: 0.98;
  letter-spacing: -0.045em;
}

.song-archivist-status {
  min-height: 1.5em;
  margin: 0 0 0.75rem;
  color: var(--fs-muted);
  font-size: calc(0.82rem + var(--fs-reading-increment));
}

.song-archivist-answer {
  padding: 0;
  border: 0;
}

.song-archivist-answer .testimony-archivist-section {
  padding-block: 1.5rem;
  border-top: 1px solid var(--fs-line);
}

.song-archivist-answer .testimony-archivist-section h4,
.song-archivist-actions > p {
  margin: 0 0 0.65rem;
  color: var(--fs-red);
  font-family: "Barlow Condensed", Impact, sans-serif;
  font-size: 0.88rem;
  font-weight: 800;
  letter-spacing: 0.18em;
  line-height: 1;
  text-transform: uppercase;
}

.song-archivist-answer .testimony-archivist-section p {
  max-width: 70ch;
  margin: 0.65rem 0 0;
  font-family: "Source Serif 4", Georgia, serif;
  font-size: calc(1.08rem + var(--fs-reading-increment));
  line-height: 1.62;
}

.song-archivist-answer .testimony-archivist-word blockquote {
  margin: 0.9rem 0;
  padding-left: 1.25rem;
  border-left: 3px solid var(--fs-red);
}

.song-archivist-answer .testimony-archivist-word blockquote strong {
  display: block;
  margin-bottom: 0.35rem;
}

.song-archivist-actions {
  padding-top: 1.5rem;
  border-top: 1px solid var(--fs-red);
  text-align: center;
}

.song-archivist-actions > p {
  color: var(--fs-ink);
}

.song-archivist-actions > div {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem;
}

#canonical-player-host fs-canonical-player .song-dialog > header .song-social-links [data-root-social-inactive] {
  opacity: 0.38;
  cursor: not-allowed;
  pointer-events: none;
}

@supports selector(::-webkit-scrollbar) {
  .song-archivist-dialog::-webkit-scrollbar {
    width: 6px;
  }

  .song-archivist-dialog::-webkit-scrollbar-track {
    background: transparent;
  }

  .song-archivist-dialog::-webkit-scrollbar-thumb {
    background: var(--fs-red);
  }
}

@media (width <= 700px) {
  .song-archivist-dialog {
    width: calc(100% - 1rem);
    max-height: calc(var(--fs-visual-viewport-height, 100dvh) - 1rem);
  }

  .song-archivist-inner {
    padding:
      max(1.25rem, env(safe-area-inset-top, 0px))
      max(1.25rem, env(safe-area-inset-right, 0px))
      max(1.5rem, env(safe-area-inset-bottom, 0px))
      max(1.25rem, env(safe-area-inset-left, 0px));
  }

  .song-archivist-head {
    padding-right: 2.5rem;
  }

  .song-archivist-head h2 {
    font-size: clamp(2rem, 11vw, 3.2rem);
  }

  .song-archivist-actions :is(button, a) {
    min-width: 132px;
    min-height: 48px;
  }
}

/* Stable offline-library manager: progress updates mutate reserved fields in
   place so downloads never remount rows, steal focus, or shift the page. */
.downloads-page .offline-summary {
  grid-template-columns: minmax(0, 1fr);
}

.downloads-page .offline-estimate {
  color: #fff;
  font-size: 0.88rem;
  font-weight: 800;
}

.downloads-page .offline-primary-actions {
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  display: flex;
}

.downloads-page .offline-download-all {
  min-width: min(100%, 15rem);
  min-height: 56px;
  font-size: 1rem;
}

.downloads-page .offline-remove-all:not(:disabled) {
  margin-left: auto;
}

.downloads-page .offline-aggregate {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.35rem 1rem;
  min-height: 5.5rem;
  padding-top: 1rem;
  border-top: 1px solid #3d4147;
  display: grid;
}

.downloads-page .offline-aggregate .offline-progress {
  grid-column: 1 / -1;
}

.downloads-page :is(.offline-current, .offline-failures) {
  min-height: 1.5em;
  color: #fff;
  font-size: 0.82rem;
  font-weight: 750;
}

.downloads-page .offline-failures {
  text-align: right;
}

.downloads-page .offline-live-status {
  clip-path: inset(50%);
  width: 1px;
  height: 1px;
  overflow: hidden;
  white-space: nowrap;
  position: absolute;
}

.downloads-page .offline-categories {
  border-top: 4px solid var(--fs-red);
}

.downloads-page .offline-category {
  border-bottom: 1px solid var(--fs-line);
}

.downloads-page .offline-category-toggle {
  border: 0;
  background: transparent;
  color: var(--fs-ink);
  grid-template-columns: minmax(0, 1fr) 48px;
  align-items: center;
  gap: 1rem;
  width: 100%;
  min-height: 64px;
  padding: 0.8rem 0;
  text-align: left;
  font-family: FS Display, Impact, sans-serif;
  font-size: clamp(1.2rem, 2.5vw, 1.65rem);
  font-weight: 800;
  line-height: 1.1;
  text-transform: uppercase;
  cursor: pointer;
  display: grid;
}

.downloads-page .offline-category-toggle::after {
  content: "+";
  border: 1px solid currentColor;
  place-items: center;
  width: 48px;
  height: 48px;
  font-size: 1.5rem;
  display: grid;
}

.downloads-page .offline-category-toggle[aria-expanded="true"]::after {
  content: "−";
}

.downloads-page .offline-category-panel {
  padding: 0 0 1.5rem;
}

.downloads-page .offline-category-meta {
  margin: 0;
  color: var(--fs-red);
  font-weight: 850;
}

.downloads-page .offline-category-description {
  max-width: 58rem;
  margin: 0.35rem 0 1rem;
  font-family:
    FS Serif,
    Georgia,
    serif;
}

.downloads-page #offline-category-music {
  padding-bottom: 0;
}

.downloads-page .offline-album {
  border-right: 0;
  border-left: 0;
  background: transparent;
}

@media (width <= 620px) {
  .downloads-page .offline-album-controls {
    align-items: center;
    min-height: 5.75rem;
  }

  .downloads-page .offline-primary-actions .root-button {
    justify-content: center;
    flex: 1 1 9rem;
    min-height: 48px;
  }

  .downloads-page .offline-primary-actions .offline-download-all {
    flex-basis: 100%;
  }

  .downloads-page .offline-remove-all:not(:disabled) {
    margin-left: 0;
  }

  .downloads-page .offline-aggregate {
    grid-template-columns: 1fr;
  }

  .downloads-page .offline-aggregate > * {
    grid-column: 1;
  }

  .downloads-page .offline-failures {
    text-align: left;
  }
}

/* Testimony catalog: every release stays visible while one context-rich spotlight is open. */
body[data-page="testimony"] .testimony-album-navigator {
  grid-column: 1;
  grid-row: 3;
  align-self: start;
  margin: 1rem 0 0;
  border-top: 4px solid var(--fs-red);
  background: #0b0c0e;
  color: #fff;
  padding: 0.8rem;
}

body[data-page="testimony"] .testimony-album-navigator-heading {
  margin: 0 0 0.45rem;
}

body[data-page="testimony"] .testimony-album-navigator-heading .root-kicker {
  color: #fff;
}

body[data-page="testimony"] .testimony-album-navigator-heading > * {
  margin: 0;
}

body[data-page="testimony"] .testimony-album-navigator-heading > p:last-child {
  display: none;
}

body[data-page="testimony"] .testimony-lanes {
  display: grid;
  gap: 0.9rem;
}

body[data-page="testimony"] .testimony-lane + .testimony-lane {
  border-top: 1px solid #70757c;
  padding-top: 0.85rem;
}

body[data-page="testimony"] .testimony-lane-header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: baseline;
  gap: 0.2rem 0.75rem;
  margin-bottom: 0.5rem;
}

body[data-page="testimony"] .testimony-lane-header > * {
  margin: 0;
}

body[data-page="testimony"] .testimony-lane-header .root-kicker {
  color: var(--fs-red);
}

body[data-page="testimony"] .testimony-lane-header h3 {
  color: #fff;
  font-family: FS Display, Impact, sans-serif;
  font-size: 1.1rem;
  line-height: 1;
  text-transform: uppercase;
}

body[data-page="testimony"] .testimony-lane-header > p:last-child {
  grid-column: 1 / -1;
  max-width: 58rem;
  color: #d9dadd;
  font-size: 0.78rem;
  line-height: 1.35;
}

body[data-page="testimony"] .testimony-album-rail {
  display: flex;
  gap: 0.45rem;
  max-height: none;
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-inline: contain;
  scroll-snap-type: inline proximity;
  scrollbar-width: none;
}

body[data-page="testimony"] .testimony-album-rail::-webkit-scrollbar {
  width: 0;
  height: 0;
}

body[data-page="testimony"] .testimony-album-choice {
  flex: 0 0 clamp(12rem, 18vw, 15rem);
  display: grid;
  grid-template-columns: 3.25rem minmax(0, 1fr);
  align-items: center;
  gap: 0.75rem;
  width: 100%;
  border: 1px solid #70757c;
  border-left: 3px solid transparent;
  background: #17191c;
  min-height: 56px;
  margin: 0;
  padding: 0.6rem 0.5rem;
  color: #fff;
  text-align: left;
  cursor: pointer;
  scroll-snap-align: start;
}

body[data-page="testimony"] .testimony-album-choice img {
  display: block;
  width: 3.25rem;
  height: 3.25rem;
  aspect-ratio: 1;
  margin: 0;
  background: #08090b;
  object-fit: cover;
}

body[data-page="testimony"] .testimony-choice-art {
  width: 3.25rem;
  height: 3.25rem;
  overflow: hidden;
  background: #08090b;
}

body[data-page="testimony"] .testimony-choice-art[data-artwork-aspect="wide"] img {
  object-fit: contain;
}

body[data-page="testimony"] .testimony-album-choice span,
body[data-page="testimony"] .testimony-album-choice strong,
body[data-page="testimony"] .testimony-album-choice small {
  display: block;
}

body[data-page="testimony"] .testimony-album-choice strong {
  font-family: FS Display, Impact, sans-serif;
  font-size: 1.05rem;
  line-height: 1.08;
  letter-spacing: 0.01em;
  text-transform: uppercase;
}

body[data-page="testimony"] .testimony-album-choice small {
  margin-top: 0.3rem;
  color: #f2f0eb;
  font-size: 0.76rem;
  line-height: 1.25;
}

body[data-page="testimony"] .testimony-album-choice[aria-pressed="true"] {
  border-color: #f2f0eb;
  border-left-color: var(--fs-red);
  background: #f2f0eb;
  color: #0a0b0d;
}

body[data-page="testimony"] .testimony-album-choice[aria-pressed="true"] strong {
  color: #0a0b0d;
}

body[data-page="testimony"] .testimony-album-choice[aria-pressed="true"] small {
  color: #34373b;
}

body[data-page="testimony"] .testimony-album-choice:not([aria-pressed="true"]):hover {
  border-color: #fff;
  background: #292c31;
}

body[data-page="testimony"] .testimony-album-choice[data-testimony-collection-kind="album"] + .testimony-album-choice[data-testimony-collection-kind="compilation"] {
  margin-left: 0.35rem;
  border-left-color: var(--fs-red);
}

body[data-page="testimony"] .testimony-album-choice:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 2px;
}

body[data-page="testimony"] .song-directory-enhancement {
  grid-column: 1;
  grid-row: 4;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0.45rem;
  width: 100%;
  max-width: none;
  margin: 1rem 0 0.9rem;
}

body[data-page="testimony"] .song-directory-search {
  display: grid;
  gap: 0.45rem;
}

body[data-page="testimony"] .song-directory-search > label {
  color: var(--fs-red);
  font-size: 0.78rem;
  font-weight: 850;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

body[data-page="testimony"] .song-directory-search > span {
  position: relative;
  display: block;
}

body[data-page="testimony"] .song-directory-search input {
  width: 100%;
  min-height: 48px;
  padding-right: 3.4rem;
}

body[data-page="testimony"] .song-directory-clear {
  position: absolute;
  top: 2px;
  right: 2px;
  width: 44px;
  min-width: 44px;
  height: 44px;
  min-height: 44px;
  border: 0;
  background: transparent;
  color: var(--fs-ink);
  padding: 0;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
}

body[data-page="testimony"] .song-directory-clear:focus-visible {
  outline: 3px solid var(--fs-red);
  outline-offset: -3px;
}

body[data-page="testimony"] .song-directory-status {
  min-height: 1.2rem;
  margin: 0;
  color: var(--fs-muted);
  font-size: 0.82rem;
  line-height: 1.35;
}

body[data-page="testimony"] #testimony-spotlight {
  grid-column: 1;
  grid-row: 5;
  scroll-margin-top: calc(5rem + env(safe-area-inset-top));
}

body[data-page="testimony"] .testimony-chapter {
  margin: 0;
  border: 1px solid var(--fs-line);
  background: var(--fs-surface);
  padding: 0;
}

body[data-page="testimony"] .testimony-chapter .song-album-header {
  display: block;
  margin: 0;
  border-bottom: 2px solid var(--fs-ink);
  padding: 0.85rem 1rem;
}

body[data-page="testimony"] .testimony-chapter .testimony-release-header {
  display: grid;
  grid-template-columns: clamp(8rem, 16vw, 13rem) minmax(0, 1fr);
  align-items: center;
  gap: clamp(1rem, 3vw, 2.25rem);
}

body[data-page="testimony"] .testimony-release-header .song-album-art {
  position: relative;
  width: 100%;
  margin: 0;
  overflow: hidden;
  background: #08090b;
}

body[data-page="testimony"] .testimony-release-header .song-album-art[data-artwork-aspect="square"] {
  aspect-ratio: 1;
}

body[data-page="testimony"] .testimony-release-header .song-album-art[data-artwork-aspect="wide"] {
  aspect-ratio: 16 / 9;
}

body[data-page="testimony"] .testimony-release-header .song-album-art img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

body[data-page="testimony"] .testimony-release-header .song-album-art[data-artwork-aspect="wide"] img {
  object-fit: contain;
}

body[data-page="testimony"] .song-album-art-state {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  background: #08090be0;
  color: #fff;
  padding: 0.35rem 0.5rem;
  font-size: 0.65rem;
  font-weight: 850;
  letter-spacing: 0.08em;
  line-height: 1.2;
  text-transform: uppercase;
}

body[data-page="testimony"] .testimony-chapter-summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 0.3rem 1rem;
}

body[data-page="testimony"] .testimony-chapter-summary .root-kicker {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
  margin: 0;
  color: var(--fs-red);
  text-align: right;
}

body[data-page="testimony"] .testimony-chapter-summary > strong {
  color: var(--fs-ink);
  font-family: FS Display, Impact, sans-serif;
  font-size: clamp(1.65rem, 3vw, 2.35rem);
  line-height: 0.92;
  text-transform: uppercase;
}

body[data-page="testimony"] .testimony-chapter-summary .song-album-status {
  margin: 0;
  color: var(--fs-muted);
  font-size: 0.67rem;
}

body[data-page="testimony"] .testimony-chapter > .song-album-copy {
  border-bottom: 1px solid var(--fs-line);
  padding: 0.75rem 1rem;
}

body[data-page="testimony"] .testimony-chapter > .song-album-copy :is(.song-album-subtitle, .song-album-description) {
  max-width: 55rem;
  margin: 0;
  font-size: calc(0.94rem + var(--fs-reading-increment));
}

body[data-page="testimony"] .testimony-chapter > .song-album-copy .song-album-description {
  margin-top: 0.45rem;
}

body[data-page="testimony"] .testimony-chapter .song-index-link {
  grid-template-columns: 4.75rem minmax(0, 1fr);
  grid-template-rows: auto auto auto;
  align-items: start;
  gap: 0.8rem;
  min-height: 4.75rem;
  padding: 0.6rem 0.75rem;
}

body[data-page="testimony"] .testimony-chapter .song-row-art {
  aspect-ratio: 1;
  grid-column: 1;
  grid-row: 1 / span 3;
  display: block;
}

body[data-page="testimony"] .testimony-chapter .song-row-art img {
  object-fit: cover;
}

body[data-page="testimony"] .testimony-chapter .song-row-copy > p:first-child {
  margin-bottom: 0.15rem;
}

body[data-page="testimony"] .testimony-chapter .song-row-copy {
  display: contents;
}

body[data-page="testimony"] .testimony-chapter .song-row-meta {
  grid-column: 2;
  grid-row: 1;
  display: flex;
  align-items: center;
  gap: 0.45rem 0.75rem;
  min-width: 0;
  margin: 0;
}

body[data-page="testimony"] .testimony-chapter .song-row-number {
  flex: 0 0 auto;
  color: var(--fs-red);
  font-size: clamp(1.8rem, 3vw, 2.25rem);
  letter-spacing: 0.04em;
  line-height: 0.85;
}

body[data-page="testimony"] .testimony-chapter .song-row-copy h4 {
  grid-column: 2;
  grid-row: 2;
  min-width: 0;
}

body[data-page="testimony"] .testimony-chapter .song-row-copy h4 a {
  font-family: FS Display, Impact, sans-serif;
  font-size: clamp(1rem, 1.55vw, 1.2rem);
}

body[data-page="testimony"] .testimony-chapter .song-row-summary {
  grid-column: 2;
  grid-row: 3;
  display: -webkit-box;
  margin-top: 0.18rem;
  overflow: hidden;
  font-size: calc(0.86rem + var(--fs-reading-increment));
  line-height: 1.3;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

body[data-page="testimony"] .testimony-chapter .song-row-actions {
  margin-left: auto;
  gap: 0.4rem;
  flex-wrap: nowrap;
}

body[data-page="testimony"] .testimony-chapter :is(.song-row-favorite, .song-row-play, .song-row-download, .song-row-context) {
  flex: 0 0 auto;
  min-width: 44px;
  min-height: 44px;
  border: 1px solid var(--fs-red);
  background: transparent;
  padding: 0.45rem 0.7rem;
  font-size: 0.8rem;
}

body[data-page="testimony"] .testimony-chapter .song-row-play {
  width: 3.5rem;
}

body[data-page="testimony"] .testimony-chapter :is(.song-row-favorite, .song-row-play, .song-row-download, .song-row-context):focus-visible {
  outline-offset: -4px;
}

body[data-page="testimony"] .testimony-chapter :is(.song-row-favorite, .song-row-play, .song-row-download, .song-row-context):is(:hover, :focus-visible),
body[data-page="testimony"] .testimony-chapter .song-row-favorite[aria-pressed="true"] {
  background: var(--fs-red);
  color: #fff;
}

body[data-page="testimony"] .song-row-favorite svg {
  width: 1rem;
  height: 1rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
}

body[data-page="testimony"] .song-row-favorite[aria-pressed="true"] svg {
  fill: currentColor;
}

body[data-page="testimony"] .song-album-actions > * {
  flex: 0 0 auto;
  min-width: 0;
}

body[data-page="testimony"] .song-album-actions {
  align-items: center;
  gap: 0.65rem;
  margin-top: 0.7rem;
  display: flex;
  flex-wrap: wrap;
}

body[data-page="testimony"] .song-album-action {
  border: 1px solid var(--fs-red);
  background: transparent;
  justify-content: center;
  min-width: 0;
  margin: 0;
  padding: 0.55rem 0.8rem;
  text-transform: uppercase;
  cursor: pointer;
}

body[data-page="testimony"] .song-album-action:disabled {
  border-color: var(--fs-line);
  cursor: default;
  opacity: 0.72;
}

body[data-page="testimony"] .song-album-download-status {
  min-height: 1.35rem;
  margin: 0.7rem 0 0;
  color: var(--fs-ink);
  font-size: 0.88rem;
  font-weight: 750;
}

@media (width <= 1100px) and (width > 620px) {
  body[data-page="testimony"] .testimony-chapter .song-index-link {
    grid-template-columns: 4.75rem minmax(0, 1fr);
    align-items: start;
  }

  body[data-page="testimony"] .testimony-chapter .song-row-art {
    grid-column: 1;
    grid-row: 1 / span 3;
  }

  body[data-page="testimony"] .testimony-chapter .song-row-meta {
    flex-wrap: wrap;
  }
}

@media (width <= 620px) {
  body[data-page="testimony"] .root-page-hero {
    min-height: 18rem;
    padding-block: 2.5rem;
  }

  body[data-page="testimony"] .root-page-hero .root-actions .root-button {
    flex: 0 1 auto;
    width: auto;
  }

  body[data-page="testimony"] .root-page-hero .root-heading {
    font-size: clamp(3.2rem, 15vw, 4.25rem);
  }

  body[data-page="testimony"] .song-index {
    display: block;
    padding-top: 2.25rem;
  }

  body[data-page="testimony"] .testimony-album-navigator-heading {
    margin-bottom: 0.4rem;
  }

  body[data-page="testimony"] .testimony-album-rail {
    gap: 0.4rem;
  }

  body[data-page="testimony"] .testimony-album-choice {
    flex: 0 0 min(52vw, 12rem);
    grid-template-columns: 2.7rem minmax(0, 1fr);
  }

  body[data-page="testimony"] .testimony-album-choice:not([aria-pressed="true"]) {
    border: 1px solid #70757c;
    border-left: 3px solid transparent;
  }

  body[data-page="testimony"] .testimony-album-choice img {
    width: 2.7rem;
    height: 2.7rem;
  }

  body[data-page="testimony"] .testimony-choice-art {
    width: 2.7rem;
    height: 2.7rem;
  }

  body[data-page="testimony"] .testimony-album-choice[data-testimony-collection-kind="album"] + .testimony-album-choice[data-testimony-collection-kind="compilation"]:not([aria-pressed="true"]) {
    margin-left: 0.4rem;
  }

  body[data-page="testimony"] .song-directory-enhancement {
    margin-top: 0.75rem;
  }

  body[data-page="testimony"] .testimony-chapter .song-album-header {
    padding: 0.8rem;
  }

  body[data-page="testimony"] .testimony-chapter .testimony-release-header {
    grid-template-columns: minmax(0, 1fr);
    gap: 0.8rem;
  }

  body[data-page="testimony"] .testimony-release-header .song-album-art {
    width: min(100%, 18rem);
  }

  body[data-page="testimony"] .testimony-release-header .song-album-art[data-artwork-aspect="wide"] {
    width: 100%;
  }

  body[data-page="testimony"] .testimony-chapter-summary {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  body[data-page="testimony"] .testimony-chapter-summary > strong {
    font-size: clamp(1.45rem, 7vw, 1.85rem);
  }

  body[data-page="testimony"] .testimony-chapter-summary .root-kicker {
    max-width: 9rem;
    font-size: 0.62rem;
  }

  body[data-page="testimony"] .testimony-chapter > .song-album-copy {
    padding: 0.7rem 0.8rem;
  }

  body[data-page="testimony"] .testimony-chapter .song-index-link {
    grid-template-columns: 3.8rem minmax(0, 1fr);
    grid-template-rows: auto auto auto;
    align-items: start;
    gap: 0.55rem;
    min-height: 4.35rem;
    padding: 0.5rem;
  }

  body[data-page="testimony"] .testimony-chapter .song-row-art {
    grid-column: 1;
    grid-row: 1 / span 3;
  }

  body[data-page="testimony"] .testimony-chapter .song-row-meta {
    grid-column: 2;
    grid-row: 1;
    flex-wrap: nowrap;
    gap: 0.25rem;
  }

  body[data-page="testimony"] .testimony-chapter .song-row-number {
    font-size: clamp(1.55rem, 7.5vw, 1.85rem);
  }

  body[data-page="testimony"] .testimony-chapter .song-row-copy h4,
  body[data-page="testimony"] .testimony-chapter .song-row-summary {
    grid-column: 2;
  }

  body[data-page="testimony"] .testimony-chapter .song-row-copy h4 {
    grid-row: 2;
  }

  body[data-page="testimony"] .testimony-chapter .song-row-summary {
    grid-row: 3;
  }

  body[data-page="testimony"] .testimony-chapter .song-row-duration {
    display: none;
  }

  body[data-page="testimony"] .testimony-chapter .song-row-actions {
    display: flex;
    flex-wrap: nowrap;
    gap: 0.25rem;
    margin: 0 0 0 auto;
  }

  body[data-page="testimony"] .testimony-chapter .song-row-actions > * {
    flex: 0 0 auto;
    min-width: 44px;
    min-height: 44px;
    padding: 0.35rem 0.45rem;
    font-size: 0.7rem;
  }

  body[data-page="testimony"] .testimony-chapter .song-row-favorite span {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
  }

  body[data-page="testimony"] .testimony-chapter .song-row-context {
    grid-column: auto;
  }

  body[data-page="testimony"] .testimony-chapter .song-row-copy small {
    display: none;
  }

  body[data-page="testimony"] .testimony-chapter .song-row-summary {
    -webkit-line-clamp: 2;
  }

  body[data-page="testimony"] .song-album-actions {
    gap: 0.5rem;
  }

  body[data-page="testimony"] .song-album-action {
    flex: 0 0 auto;
    min-width: 0;
    min-height: 44px;
    padding-inline: 0.7rem;
  }

  body[data-page="testimony"] .testimony-archivist {
    margin-top: 2.5rem;
  }
}

/* Song context pages use red for semantic wayfinding while retaining white hero contrast. */
body[data-page="song"] .root-page-hero .root-kicker,
body[data-page="song"] .root-page-hero-detail > strong {
  color: var(--fs-red);
}

/* Biblical Counseling: one SBG-native public library, not a parallel application. */
body[data-page="biblical-counseling"] .root-page-hero .root-heading strong,
body[data-page="biblical-counseling"] .counseling-safety h2 strong,
body[data-page="biblical-counseling"] .counseling-archivist h2 strong {
  color: var(--fs-red);
  font: inherit;
}

.counseling-safety,
.counseling-beginnings,
.counseling-archivist,
.counseling-library,
.counseling-support {
  width: min(100% - 3rem, var(--fs-shell-max));
  margin-inline: auto;
  padding-block: clamp(4rem, 8vw, 7rem);
}

.counseling-safety {
  grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.28fr);
  gap: clamp(2rem, 7vw, 7rem);
  border-bottom: 1px solid var(--fs-line);
  display: grid;
}

.counseling-safety h2,
.counseling-archivist h2 {
  margin: 0;
  color: var(--fs-ink);
  font-family: FS Display, Impact, sans-serif;
  font-size: clamp(2.8rem, 5.4vw, 5.8rem);
  line-height: 0.92;
  text-transform: uppercase;
}

.counseling-safety-copy {
  border-left: 4px solid var(--fs-red);
  padding-left: clamp(1.25rem, 3vw, 2rem);
  color: var(--fs-ink);
  font-size: clamp(1rem, 1.5vw, 1.2rem);
  line-height: 1.68;
}

.counseling-safety-copy a {
  color: var(--fs-red);
  font-weight: 850;
}

.counseling-safety-actions {
  align-items: center;
  gap: 1rem;
  margin-top: 1.5rem;
  display: flex;
  flex-wrap: wrap;
}

.counseling-safety-actions summary {
  cursor: pointer;
  color: var(--fs-ink);
  font-weight: 850;
  text-decoration: underline;
  text-underline-offset: 0.25em;
}

.counseling-safety-actions details[open] {
  flex-basis: 100%;
}

.counseling-safety-actions ul {
  margin: 1rem 0 0;
  padding-left: 1.25rem;
  font-size: 0.95rem;
}

.counseling-quick-exit-note {
  margin-top: 1rem;
  color: var(--fs-muted);
  font-size: 0.82rem;
}

.counseling-beginnings > header,
.counseling-library-intro {
  max-width: 56rem;
}

.counseling-beginning-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  margin-top: 3rem;
  background: var(--fs-line);
  border: 1px solid var(--fs-line);
  display: grid;
}

.counseling-beginning-grid > a {
  min-width: 0;
  min-height: 15rem;
  padding: clamp(1.25rem, 3vw, 2rem);
  background: var(--fs-surface);
  color: var(--fs-ink);
  text-decoration: none;
  display: flex;
  flex-direction: column;
}

.counseling-beginning-grid strong,
.counseling-guide-card strong {
  font-family: FS Display, Impact, sans-serif;
  font-size: clamp(1.65rem, 2.4vw, 2.35rem);
  line-height: 0.98;
  text-transform: uppercase;
}

.counseling-beginning-grid span {
  margin-top: 1rem;
  line-height: 1.55;
}

.counseling-beginning-grid i {
  margin-top: auto;
  padding-top: 2rem;
  color: var(--fs-red);
  font-family: FS Display, Impact, sans-serif;
  font-size: 0.82rem;
  font-style: normal;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.counseling-beginning-grid > a:is(:hover, :focus-visible),
.counseling-guide-card:is(:hover, :focus-visible) {
  outline: 2px solid var(--fs-red);
  outline-offset: -2px;
}

.counseling-archivist {
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: clamp(2rem, 7vw, 7rem);
  border-block: 1px solid var(--fs-line);
  display: grid;
}

.counseling-archivist-intro > p:last-child {
  max-width: 43rem;
  margin-top: 1.5rem;
  color: var(--fs-muted);
  line-height: 1.65;
}

.counseling-archivist-form {
  align-self: start;
  border-top: 5px solid var(--fs-red);
  padding: clamp(1.25rem, 3vw, 2rem);
  background: var(--fs-surface);
}

.counseling-archivist-form label {
  color: var(--fs-ink);
  font-weight: 850;
}

.counseling-archivist-form > div {
  align-items: stretch;
  gap: 0.75rem;
  margin-top: 0.75rem;
  display: flex;
}

.counseling-archivist-form textarea,
.counseling-search input {
  min-width: 0;
  width: 100%;
  border: 1px solid var(--fs-line);
  border-radius: 0;
  background: var(--fs-bg);
  color: var(--fs-ink);
  padding: 0.9rem 1rem;
  font: inherit;
  line-height: 1.45;
}

.counseling-archivist-form > p {
  margin: 0.8rem 0 0;
  color: var(--fs-muted);
  font-size: 0.82rem;
}

.counseling-archivist-status {
  min-height: 1.3rem;
  font-weight: 750;
}

.counseling-archivist-answer {
  grid-column: 1 / -1;
  max-width: 58rem;
  border-left: 4px solid var(--fs-red);
  padding: clamp(1.25rem, 3vw, 2.5rem);
  background: var(--fs-surface);
  color: var(--fs-ink);
}

.counseling-archivist-answer-head {
  align-items: start;
  justify-content: space-between;
  gap: 1rem;
  display: flex;
}

.counseling-archivist-answer-head h3 { margin-top: 0; }

.counseling-share {
  flex: 0 0 auto;
  min-height: 40px;
  border: 1px solid var(--fs-red);
  border-radius: 0;
  padding: 0.55rem 0.8rem;
  background: transparent;
  color: var(--fs-red);
  font-family: FS Display, Impact, sans-serif;
  font-size: 0.78rem;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  cursor: pointer;
  align-items: center;
  gap: 0.45rem;
  display: inline-flex;
}

.counseling-share svg {
  width: 1rem;
  height: 1rem;
  fill: none;
  stroke: currentColor;
  stroke-linecap: square;
  stroke-linejoin: miter;
  stroke-width: 1.8;
}

.counseling-share:is(:hover, :focus-visible) { background: var(--fs-red); color: #fff; }
.counseling-share:disabled { cursor: wait; opacity: 0.65; }

.counseling-archivist-answer h3,
.counseling-archivist-answer h4 {
  font-family: FS Display, Impact, sans-serif;
  text-transform: uppercase;
}

.counseling-archivist-answer h3 { font-size: clamp(2rem, 4vw, 3.4rem); }
.counseling-archivist-answer p { line-height: 1.65; }
.counseling-archivist-scripture { margin: 2rem 0; padding: 1.5rem; background: var(--fs-bg); }
.counseling-archivist-links { gap: 0.65rem; margin-top: 2rem; display: flex; flex-wrap: wrap; }
.counseling-archivist-links h4 { flex-basis: 100%; }
.counseling-archivist-links a { color: var(--fs-red); font-weight: 800; }

.counseling-paths {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
  margin-top: 3rem;
  display: grid;
}

.counseling-paths button {
  min-width: 0;
  border: 1px solid var(--fs-line);
  border-radius: 0;
  padding: 1rem 1.1rem;
  background: var(--fs-surface);
  color: var(--fs-ink);
  text-align: left;
  cursor: pointer;
}

.counseling-paths button[aria-pressed="true"] {
  border-color: var(--fs-red);
}

.counseling-paths strong,
.counseling-paths span { display: block; }
.counseling-paths strong { font-weight: 850; }
.counseling-paths span { margin-top: 0.3rem; color: var(--fs-muted); font-size: 0.78rem; line-height: 1.35; }

.counseling-search {
  margin-top: 2.5rem;
  border-top: 1px solid var(--fs-line);
  padding-top: 2rem;
}

.counseling-search label {
  display: block;
  margin-bottom: 0.7rem;
  font-family: FS Display, Impact, sans-serif;
  font-size: 1.1rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.counseling-search input { min-height: 54px; max-width: 48rem; background: var(--fs-surface); }
.counseling-search > p { color: var(--fs-muted); font-size: 0.85rem; }

.counseling-search-safety {
  max-width: 48rem;
  margin-top: 1rem;
  border-left: 4px solid var(--fs-red);
  padding: 1rem 1.25rem;
  background: var(--fs-surface);
}

.counseling-search-safety p { margin: 0.4rem 0; line-height: 1.5; }
.counseling-search-safety a { color: var(--fs-red); font-weight: 850; }

.counseling-results {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin-top: 2rem;
  border: 1px solid var(--fs-line);
  background: var(--fs-line);
  display: grid;
}

.counseling-guide-card {
  min-width: 0;
  min-height: 18rem;
  border: 0;
  border-radius: 0;
  padding: clamp(1.1rem, 2.7vw, 1.75rem);
  background: var(--fs-surface);
  color: var(--fs-ink);
  text-align: left;
  cursor: pointer;
  display: flex;
  flex-direction: column;
}

.counseling-guide-card .root-kicker {
  margin-bottom: 0.85rem;
  color: var(--fs-red);
  font-size: 0.66rem;
  line-height: 1.4;
}

.counseling-guide-card p {
  margin: 1rem 0;
  color: var(--fs-muted);
  line-height: 1.5;
}

.counseling-guide-card i {
  margin-top: auto;
  color: var(--fs-red);
  font-family: FS Display, Impact, sans-serif;
  font-size: 0.8rem;
  font-style: normal;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.counseling-more { margin-top: 1.5rem; }

.counseling-support {
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
  gap: clamp(2rem, 7vw, 7rem);
  border-top: 1px solid var(--fs-line);
  display: grid;
}

.counseling-support-copy > p:not(.root-kicker) { color: var(--fs-muted); line-height: 1.65; }
.counseling-support-copy .root-button { margin-top: 1rem; }
.counseling-intake { align-self: start; }

.counseling-guide-dialog {
  width: min(900px, calc(100vw - 2rem));
  max-height: min(88svh, 920px);
  margin: auto;
  border: 1px solid var(--fs-line);
  border-top: 5px solid var(--fs-red);
  border-radius: 0;
  padding: 0;
  background: var(--fs-bg);
  color: var(--fs-ink);
  box-shadow: 0 24px 80px #0008;
}

.counseling-guide-dialog::backdrop { background: #08090bcc; }
.counseling-guide-dialog-head {
  z-index: 2;
  align-items: start;
  gap: 1rem;
  padding: clamp(1.25rem, 4vw, 2.25rem);
  border-bottom: 1px solid var(--fs-line);
  background: var(--fs-bg);
  display: flex;
  position: sticky;
  top: 0;
}

.counseling-guide-dialog-head > div:first-child { min-width: 0; flex: 1; }
.counseling-guide-dialog-head h2 {
  margin: 0;
  overflow-wrap: anywhere;
  font-family: FS Display, Impact, sans-serif;
  font-size: clamp(2.5rem, 6vw, 5rem);
  line-height: 0.9;
  text-transform: uppercase;
}

.counseling-guide-dialog-actions {
  flex: 0 0 auto;
  align-items: center;
  gap: 0.65rem;
  display: flex;
}

.counseling-guide-dialog-head [data-counseling-guide-close] {
  flex: 0 0 auto;
  width: 48px;
  height: 48px;
  border: 2px solid var(--fs-red);
  border-radius: 50%;
  background: var(--fs-ink);
  color: var(--fs-bg);
  font-size: 2rem;
  line-height: 1;
  cursor: pointer;
}

.counseling-guide-dialog-body { padding: clamp(1.25rem, 4vw, 3rem); }
.counseling-guide-section { padding-block: 1.5rem; border-bottom: 1px solid var(--fs-line); }
.counseling-guide-section:last-child { border-bottom: 0; }
.counseling-guide-section h3 { margin: 0 0 1rem; font-family: FS Display, Impact, sans-serif; font-size: 1.5rem; text-transform: uppercase; }
.counseling-guide-section p, .counseling-guide-steps li { line-height: 1.7; }
.counseling-guide-steps { margin: 0; padding-left: 1.5rem; }
.counseling-guide-steps li { margin-bottom: 1rem; padding-left: 0.5rem; }
.counseling-guide-section--plain { border-left: 4px solid var(--fs-red); padding-left: 1.25rem; }
.counseling-guide-section--scripture { font-family: FS Serif, Georgia, serif; font-size: 1.08rem; }
.counseling-guide-section--safety { background: var(--fs-surface); margin-inline: -1rem; padding-inline: 1rem; }
.counseling-guide-sources ul { list-style: none; margin: 0; padding: 0; }
.counseling-guide-sources li { margin-top: 0.75rem; }
.counseling-guide-sources a, .counseling-guide-sources span { display: block; }
.counseling-guide-sources a { color: var(--fs-red); font-weight: 850; }
.counseling-guide-sources span { margin-top: 0.2rem; color: var(--fs-muted); font-size: 0.8rem; }
.counseling-guide-navigation {
  gap: 1.25rem;
  border-bottom: 0;
  display: grid;
}
.counseling-guide-navigation-sequence {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  display: grid;
}
.counseling-guide-navigation-sequence .root-button,
.counseling-guide-related .root-button {
  min-width: 0;
  justify-content: flex-start;
  white-space: normal;
  line-height: 1.35;
  text-align: left;
}
.counseling-guide-navigation-sequence .root-button { width: 100%; }
.counseling-guide-related { align-items: stretch; margin-top: 0; }
.counseling-guide-related h4 {
  margin: 0;
  font-family: FS Display, Impact, sans-serif;
  font-size: 0.85rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

@media (width <= 900px) {
  .counseling-safety,
  .counseling-archivist,
  .counseling-support { grid-template-columns: 1fr; }
  .counseling-beginning-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .counseling-paths,
  .counseling-results { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (width <= 620px) {
  .counseling-safety,
  .counseling-beginnings,
  .counseling-archivist,
  .counseling-library,
  .counseling-support { width: min(100% - 2rem, var(--fs-shell-max)); padding-block: 3.5rem; }
  .counseling-beginning-grid,
  .counseling-paths,
  .counseling-results { grid-template-columns: 1fr; }
  .counseling-beginning-grid > a { min-height: 12rem; }
  .counseling-guide-card { min-height: 14rem; }
  .counseling-archivist-form > div { flex-direction: column; }
  .counseling-archivist-form .root-button { justify-content: center; }
  .counseling-guide-dialog { width: calc(100vw - 1rem); max-height: calc(100svh - 1rem); }
  .counseling-guide-dialog-head { padding: 1rem; }
  .counseling-guide-dialog-head h2 { font-size: clamp(2.1rem, 12vw, 3.8rem); }
  .counseling-guide-dialog-head { flex-wrap: wrap; }
  .counseling-guide-dialog-actions { width: 100%; justify-content: space-between; order: -1; }
  .counseling-guide-navigation-sequence { grid-template-columns: 1fr; }
  .counseling-guide-related { flex-direction: column; }
  .counseling-guide-related h4 { align-self: stretch; }
  .counseling-archivist-answer-head { align-items: stretch; flex-direction: column; }
  .counseling-archivist-answer-head .counseling-share { align-self: flex-start; }
}

html[data-theme="dark"] body[data-page="song"] .root-page-hero .root-kicker {
  color: var(--fs-red);
}

body[data-page="song"] .root-page-hero-detail > strong {
  display: block;
  margin-bottom: 0.2rem;
}

@keyframes testimony-archivist-processing {
  0%, 60%, 100% { opacity: 0.28; transform: translateY(0); }
  30% { opacity: 1; transform: translateY(-0.28rem); }
}

/* The persistent player can open its song dialog from every public page. Keep
   the X out of document flow globally so it never reserves a mobile gutter. */
#canonical-player-host fs-canonical-player .song-dialog .dialog-close {
  float: none;
  display: block;
  margin: 1rem 1rem -4rem auto;
}

#canonical-player-host fs-canonical-player .song-dialog .song-wide {
  width: 100%;
}

@media (width <= 700px) {
  #canonical-player-host fs-canonical-player .song-dialog {
    scrollbar-width: none;
  }

  #canonical-player-host fs-canonical-player .song-dialog::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
  }

  #canonical-player-host fs-canonical-player .song-dialog > header .song-social-links {
    gap: 0.25rem;
  }

  #canonical-player-host fs-canonical-player .song-dialog > header .song-social-links a {
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
  }
}

body[data-page="testimony"] .testimony-archivist {
  grid-column: 1 / -1;
  grid-row: 6;
  display: grid;
  grid-template-columns: minmax(12rem, 0.38fr) minmax(0, 1fr);
  gap: clamp(1.5rem, 4vw, 4rem);
  margin-block: clamp(2.75rem, 6vw, 5.5rem);
  padding-block: clamp(1.5rem, 3vw, 2.5rem);
  border-block: 1px solid var(--fs-line);
}

body[data-page="testimony"] .song-directory-empty {
  grid-column: 1;
}

body[data-page="testimony"] .testimony-archivist-intro h3,
body[data-page="testimony"] .testimony-archivist-answer h3 {
  margin: 0;
  color: var(--fs-ink);
  font-family: FS Display, Impact, sans-serif;
  font-size: clamp(2rem, 4vw, 3.75rem);
  line-height: 0.92;
  letter-spacing: -0.025em;
  text-transform: uppercase;
}

body[data-page="testimony"] .testimony-archivist-intro > p:last-child {
  margin: 1rem 0 0;
  max-width: 34rem;
  font-family: FS Serif, Georgia, serif;
  font-size: calc(1rem + var(--fs-reading-increment));
  line-height: 1.5;
}

body[data-page="testimony"] .testimony-archivist-form {
  align-self: center;
  min-width: 0;
}

body[data-page="testimony"] .testimony-archivist-form > label {
  display: block;
  margin-bottom: 0.55rem;
  color: var(--fs-ink);
  font-family: FS Display, Impact, sans-serif;
  font-size: 0.88rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

body[data-page="testimony"] .testimony-archivist-entry {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: stretch;
  gap: 0.65rem;
}

body[data-page="testimony"] .testimony-archivist-entry textarea {
  width: 100%;
  min-height: 3.2rem;
  max-height: 8rem;
  margin: 0;
  padding: 0.78rem 0.9rem;
  resize: none;
  overflow-y: auto;
  border: 1px solid var(--fs-line);
  background: var(--fs-surface);
  color: var(--fs-ink);
  font: inherit;
  font-size: max(16px, calc(1rem + var(--fs-reading-increment)));
  line-height: 1.45;
}

body[data-page="testimony"] .testimony-archivist-entry textarea:focus-visible,
body[data-page="testimony"] .testimony-archivist-examples button:focus-visible {
  outline: 3px solid var(--fs-red);
  outline-offset: 2px;
}

body[data-page="testimony"] .testimony-archivist-entry .root-button {
  min-width: 5.25rem;
  justify-content: center;
}

body[data-page="testimony"] .testimony-archivist-examples {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.8rem;
  margin-top: 0.8rem;
  color: var(--fs-muted);
  font-size: 0.88rem;
}

body[data-page="testimony"] .testimony-archivist-examples > span {
  font-family: FS Display, Impact, sans-serif;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

body[data-page="testimony"] .testimony-archivist-examples button {
  appearance: none;
  min-height: 2rem;
  padding: 0;
  border: 0;
  border-bottom: 1px solid var(--fs-line);
  background: transparent;
  color: var(--fs-ink);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}

body[data-page="testimony"] .testimony-archivist-examples button:is(:hover, :focus-visible) {
  border-bottom-color: var(--fs-red);
  color: var(--fs-red);
}

body[data-page="testimony"] .testimony-archivist-privacy,
body[data-page="testimony"] .testimony-archivist-status {
  margin: 0.7rem 0 0;
  color: var(--fs-muted);
  font-size: 0.82rem;
  line-height: 1.45;
}

body[data-page="testimony"] .testimony-archivist-status:empty { display: none; }

body[data-page="testimony"] .testimony-archivist-status[data-state="error"] { color: var(--fs-red); }

body[data-page="testimony"] .testimony-archivist-answer {
  grid-column: 1 / -1;
  max-width: 66rem;
  padding: clamp(1.25rem, 3vw, 2rem) 0 0 clamp(1rem, 2vw, 1.5rem);
  border-top: 3px solid var(--fs-red);
  border-left: 1px solid var(--fs-line);
}

body[data-page="testimony"] .testimony-archivist-answer[hidden] { display: none; }

body[data-page="testimony"] .testimony-archivist-answer-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

body[data-page="testimony"] .testimony-archivist-answer-heading { display: contents; }

body[data-page="testimony"] .testimony-archivist-answer-actions {
  grid-column: 2;
  grid-row: 1;
  align-items: center;
  justify-content: flex-end;
  gap: 0.65rem;
  display: flex;
  flex-wrap: wrap;
}

body[data-page="testimony"] .testimony-archivist-answer h3 {
  grid-column: 1 / -1;
  grid-row: 2;
  font-size: clamp(1.65rem, 3vw, 2.65rem);
}

body[data-page="testimony"] .testimony-archivist-answer-kicker {
  grid-column: 1;
  grid-row: 1;
  margin: 0 0 0.5rem;
}

body[data-page="testimony"] .testimony-archivist-copy {
  flex: 0 0 auto;
  margin-top: 0.05rem;
  padding: 0.45rem 0;
  border: 0;
  border-bottom: 1px solid var(--fs-line);
  background: transparent;
  color: var(--fs-ink);
  font-family: FS Display, Impact, sans-serif;
  font-size: 0.78rem;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  cursor: pointer;
}

body[data-page="testimony"] .testimony-archivist-share {
  align-items: center;
  gap: 0.45rem;
  display: inline-flex;
}

body[data-page="testimony"] .testimony-archivist-share svg {
  width: 1rem;
  height: 1rem;
  fill: none;
  stroke: currentColor;
  stroke-linecap: square;
  stroke-linejoin: miter;
  stroke-width: 1.8;
}

body[data-page="testimony"] .testimony-archivist-copy:is(:hover, :focus-visible) {
  border-bottom-color: var(--fs-red);
  color: var(--fs-red);
}

body[data-page="testimony"] .testimony-archivist-copy:disabled {
  color: var(--fs-muted);
  cursor: default;
}

body[data-page="testimony"] .testimony-archivist-answer :is(p, li) {
  max-width: 72ch;
  font-size: calc(1rem + var(--fs-reading-increment));
  line-height: 1.6;
}

body[data-page="testimony"] .testimony-archivist-answer h4 {
  margin: 1.4rem 0 0.45rem;
  font-family: FS Display, Impact, sans-serif;
  font-size: 0.95rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

body[data-page="testimony"] .testimony-archivist-section { margin-top: clamp(1.5rem, 3vw, 2.25rem); }

body[data-page="testimony"] .testimony-archivist-section--plain {
  max-width: 72ch;
  padding-left: clamp(0.85rem, 2vw, 1.25rem);
  border-left: 3px solid var(--fs-red);
}

body[data-page="testimony"] .testimony-archivist-section--plain p {
  margin-block: 0;
  font-family: FS Serif, Georgia, serif;
  font-size: calc(1.08rem + var(--fs-reading-increment));
  line-height: 1.55;
}

body[data-page="testimony"] .testimony-archivist-section--unfettered h4 {
  color: var(--fs-red);
  font-size: clamp(1.35rem, 2.8vw, 2rem);
  letter-spacing: 0.04em;
}

body[data-page="testimony"] .testimony-archivist-section-note {
  margin: -0.1rem 0 1rem;
  color: var(--fs-muted);
  font-family: FS Serif, Georgia, serif;
  font-style: italic;
}

body[data-page="testimony"] .testimony-archivist-word {
  max-width: 72ch;
  padding-block: 1rem;
  border-block: 1px solid var(--fs-line);
}

body[data-page="testimony"] .testimony-archivist-word blockquote { margin: 0; }

body[data-page="testimony"] .testimony-archivist-word blockquote strong {
  display: block;
  color: var(--fs-red);
  font-family: FS Display, Impact, sans-serif;
  font-size: 0.9rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

body[data-page="testimony"] .testimony-archivist-word blockquote p {
  margin: 0.45rem 0;
  font-family: FS Serif, Georgia, serif;
  font-size: calc(1.08rem + var(--fs-reading-increment));
}

/* The song-specific reading layer borrows Archivist content structure, but it
   remains one flat editorial surface. Do not inherit the larger Testimony-page
   answer frame or its nested callout treatment inside this compact dialog. */
body[data-page="testimony"] .song-archivist-dialog .song-archivist-answer {
  max-width: none;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}

body[data-page="testimony"] .song-archivist-dialog .song-archivist-answer .testimony-archivist-section {
  max-width: none;
  margin: 0;
  padding: 1.5rem 0;
  border: 0;
  border-top: 1px solid var(--fs-line);
  background: transparent;
}

body[data-page="testimony"] .song-archivist-dialog .song-archivist-answer .testimony-archivist-section h4 {
  margin: 0 0 0.65rem;
  color: var(--fs-red);
  font-family: FS Display, Impact, sans-serif;
  font-size: 0.88rem;
  letter-spacing: 0.18em;
  line-height: 1;
}

body[data-page="testimony"] .song-archivist-dialog .song-archivist-answer .testimony-archivist-section p {
  margin: 0.65rem 0 0;
  font-family: FS Serif, Georgia, serif;
  font-size: calc(1.08rem + var(--fs-reading-increment));
  line-height: 1.62;
}

body[data-page="testimony"] .song-archivist-dialog .song-archivist-answer .testimony-archivist-word {
  padding: 1.5rem 0;
  border: 0;
  border-top: 1px solid var(--fs-line);
}

body[data-page="testimony"] .song-archivist-dialog .song-archivist-answer .testimony-archivist-word blockquote {
  margin: 0;
  padding-left: 1.25rem;
  border-left: 3px solid var(--fs-red);
  background: transparent;
}

body[data-page="testimony"] .testimony-archivist-section--carry {
  max-width: 72ch;
  padding-top: 0.25rem;
}

body[data-page="testimony"] .testimony-archivist-song-list { border-top: 1px solid var(--fs-line); }

body[data-page="testimony"] .testimony-archivist-song {
  display: grid;
  grid-template-columns: 4.5rem minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.85rem;
  padding-block: 0.75rem;
  border-bottom: 1px solid var(--fs-line);
}

body[data-page="testimony"] .testimony-archivist-song-art {
  display: block;
  width: 4.5rem;
  aspect-ratio: 1;
  overflow: hidden;
}

body[data-page="testimony"] .testimony-archivist-song-art img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

body[data-page="testimony"] .testimony-archivist-song-copy {
  display: grid;
  min-width: 0;
  gap: 0.15rem;
}

body[data-page="testimony"] .testimony-archivist-song-copy span {
  color: var(--fs-red);
  font-family: FS Display, Impact, sans-serif;
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

body[data-page="testimony"] .testimony-archivist-song-copy > a {
  color: var(--fs-ink);
  font-family: FS Serif, Georgia, serif;
  font-size: calc(1rem + var(--fs-reading-increment));
  font-weight: 700;
}

body[data-page="testimony"] .testimony-archivist-song-actions {
  display: flex;
  align-items: center;
  gap: 0.45rem;
}

body[data-page="testimony"] .testimony-archivist-song-action {
  display: inline-grid;
  min-height: 44px;
  place-items: center;
  margin: 0;
  padding: 0.45rem 0.7rem;
  border: 1px solid var(--fs-line);
  background: transparent;
  color: var(--fs-ink);
  font-family: FS Display, Impact, sans-serif;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  line-height: 1;
  text-decoration: none;
  text-transform: uppercase;
  cursor: pointer;
}

body[data-page="testimony"] .testimony-archivist-song-action:is(:hover, :focus-visible) {
  border-color: var(--fs-red);
  color: var(--fs-red);
}

body[data-page="testimony"] .testimony-archivist-answer ul {
  margin: 0;
  padding-left: 1.2rem;
}

body[data-page="testimony"] .testimony-archivist-answer a {
  color: var(--fs-red);
  font-weight: 750;
  text-underline-offset: 0.16em;
}

body[data-page="testimony"] .testimony-archivist-links li span {
  display: block;
  color: var(--fs-muted);
  font-size: 0.88rem;
}

body[data-page="testimony"] .testimony-archivist-safety-questions {
  margin-top: 1.25rem;
  border-block: 1px solid var(--fs-line);
  padding-block: 0.8rem;
}

body[data-page="testimony"] .testimony-archivist-safety-questions summary {
  color: var(--fs-ink);
  font-weight: 800;
  cursor: pointer;
}

body[data-page="testimony"] .testimony-archivist-reflection,
body[data-page="testimony"] .testimony-archivist-scripture { font-family: FS Serif, Georgia, serif; }

body[data-page="testimony"] .testimony-archivist-loading {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  margin: 0.8rem 0 0;
}

body[data-page="testimony"] .testimony-archivist-loading p { margin: 0; }

body[data-page="testimony"] .testimony-archivist-loading-mark {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  min-width: 2.3rem;
}

body[data-page="testimony"] .testimony-archivist-loading-mark i {
  width: 0.3rem;
  height: 0.62rem;
  background: var(--fs-red);
  animation: testimony-archivist-processing 1.05s ease-in-out infinite;
}

body[data-page="testimony"] .testimony-archivist-loading-mark i:nth-child(2) { animation-delay: 0.14s; }
body[data-page="testimony"] .testimony-archivist-loading-mark i:nth-child(3) { animation-delay: 0.28s; }

@media (width <= 700px) {
  body[data-page="testimony"] .testimony-archivist {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.35rem;
  }

  body[data-page="testimony"] .testimony-archivist-entry { grid-template-columns: minmax(0, 1fr) auto; }

  body[data-page="testimony"] .testimony-archivist-entry .root-button {
    min-width: 4.7rem;
    padding-inline: 0.8rem;
  }

  body[data-page="testimony"] .testimony-archivist-examples {
    gap: 0.55rem 0.75rem;
    line-height: 1.35;
  }

  body[data-page="testimony"] .testimony-archivist-answer { grid-column: 1; }

  body[data-page="testimony"] .testimony-archivist-answer-head {
    gap: 0.75rem;
  }

  body[data-page="testimony"] .testimony-archivist-copy {
    max-width: 7.5rem;
    font-size: 0.7rem;
    letter-spacing: 0.06em;
    text-align: right;
  }

  body[data-page="testimony"] .testimony-archivist-answer-kicker {
    font-size: 0.68rem;
    letter-spacing: 0.12em;
    white-space: nowrap;
  }

  body[data-page="testimony"] .testimony-archivist-song {
    grid-template-columns: 4rem minmax(0, 1fr);
    gap: 0.7rem;
  }

  body[data-page="testimony"] .testimony-archivist-song-art { width: 4rem; }

  body[data-page="testimony"] .testimony-archivist-song-actions {
    grid-column: 2;
    flex-wrap: wrap;
  }
}

@media (prefers-reduced-motion: reduce) {
  body[data-page="testimony"] .testimony-archivist * { scroll-behavior: auto; }
  body[data-page="testimony"] .testimony-archivist-loading-mark i { animation: none; opacity: 0.72; }
}

/* 2026-08-30: SBG protected account, Care, and Prayer surfaces. */
.fs-shell-actions { position: relative; }
.fs-shell-mark { cursor: pointer; padding: 0; }
.fs-shell-account-menu {
  z-index: 90;
  border: 1px solid var(--fs-line);
  border-top: 3px solid var(--fs-red);
  background: var(--fs-surface);
  color: var(--fs-ink);
  width: min(18rem, calc(100vw - 1.5rem));
  box-shadow: 0 18px 48px var(--fs-shadow);
  padding: 0.55rem;
  position: absolute;
  top: calc(100% + 0.65rem);
  right: 0;
}
.fs-shell-account-menu[hidden] { display: none; }
.fs-shell-account-menu p { border-bottom: 1px solid var(--fs-line); margin: 0 0 0.35rem; padding: 0.65rem 0.75rem 0.8rem; line-height: 1.25; }
.fs-shell-account-menu p strong,
.fs-shell-account-menu p span { display: block; }
.fs-shell-account-menu p strong { font-family: FS Display, Impact, sans-serif; text-transform: uppercase; letter-spacing: 0.06em; font-size: 1.15rem; }
.fs-shell-account-menu p span { color: #636872; font-size: 0.75rem; margin-top: 0.2rem; }
.fs-shell-account-menu :is(a, button) {
  border: 0;
  border-bottom: 1px solid var(--fs-line);
  background: transparent;
  color: inherit;
  width: 100%;
  min-height: 44px;
  text-align: left;
  text-decoration: none;
  padding: 0.68rem 0.75rem;
  font: 800 0.76rem/1.2 Inter, system-ui, sans-serif;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  display: flex;
  align-items: center;
}
.fs-shell-account-menu :is(a, button):last-child { border-bottom: 0; }
.fs-shell-account-menu :is(a, button):hover { background: var(--fs-surface-2); color: var(--fs-red); }

body.protected-page {
  --protected-paper: var(--fs-bg);
  --protected-card: var(--fs-surface);
  --protected-dark: #111214;
  --protected-label-size: calc(0.9rem + var(--fs-reading-increment));
  --protected-helper-size: calc(0.94rem + var(--fs-reading-increment));
  --protected-meta-size: calc(0.86rem + var(--fs-reading-increment));
  background: var(--protected-paper);
}
html[data-theme="dark"] body.protected-page {
  --protected-paper: var(--fs-bg);
  --protected-card: var(--fs-surface);
  --protected-dark: #070809;
}
body.has-protected-dialog { overflow: hidden; }
body.protected-page [hidden] { display: none; }
.protected-page :is(
  .protected-module-head,
  .protected-workspace,
  .protected-detail,
  .protected-titlebar,
  .protected-detail-grid,
  .protected-section,
  .protected-sidebar,
  .protected-sidebar-block,
  .protected-dialog-shell,
  .protected-dialog-body,
  .protected-form-grid,
  .protected-form-section,
  .protected-care-guide,
  .protected-overview-head,
  .protected-overview-metrics,
  .protected-overview-metric,
  .protected-overview-links,
  .protected-overview-link
) { max-width: 100%; min-width: 0; }
.protected-page :is(
  .protected-module-head h1,
  .protected-titlebar h2,
  .protected-row strong,
  .protected-message,
  .protected-care-guide,
  .protected-overview-link
) { overflow-wrap: anywhere; }
.protected-module-main {
  width: min(calc(100% - 5rem), var(--fs-shell-max));
  max-width: 100%;
  min-height: calc(100dvh - 5rem);
  min-width: 0;
  margin: 0 auto;
  padding: 2.5rem 0 8rem;
}
.protected-module-head,
.protected-overview-head {
  position: relative;
  isolation: isolate;
  width: 100%;
  min-height: clamp(14rem, 23vw, 19rem);
  background: var(--protected-dark);
  color: #fff;
  border-bottom: 3px solid var(--fs-red);
  align-items: end;
  justify-content: space-between;
  gap: 2rem;
  padding: 1.5rem;
  display: flex;
}
.protected-module-head .root-kicker { margin-bottom: 0.55rem; }
html[data-theme] body.protected-page :is(.protected-module-head, .protected-overview-head) .root-kicker { color: var(--fs-red); }
.protected-heading { display: flex; align-items: center; gap: 1rem; min-width: 0; }
.protected-heading > div:last-child { min-width: 0; }
.protected-heading-art { position: absolute; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; }
.protected-heading-art::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, #070809 25%, #070809dd 43%, #07080925 75%, #07080955); }
.protected-heading-art > img:first-child { display: block; width: 70%; height: 100%; margin-left: auto; object-fit: cover; object-position: 50% 28%; filter: grayscale(1); }
.protected-heading-art .protected-heading-mark { position: absolute; z-index: 1; top: 0.7rem; right: 0.7rem; width: 2rem; height: 2rem; }
.protected-module-head h1,
.protected-login-panel h1 {
  font: 800 clamp(3.6rem, 6vw, 5.3rem)/0.82 FS Display, Impact, sans-serif;
  letter-spacing: -0.035em;
  text-transform: uppercase;
  margin: 0;
}
.protected-module-head h1 strong,
.protected-login-panel h1 strong { color: var(--fs-red); }
.protected-head-actions { align-items: center; gap: 1.25rem; min-width: 0; display: flex; }
.protected-role { color: inherit; font-size: var(--protected-meta-size); font-weight: 900; letter-spacing: 0.13em; text-transform: uppercase; overflow-wrap: anywhere; }
.protected-page .root-button { position: relative; min-height: 34px; max-width: 100%; margin-block: 5px; padding: 0.4rem 0.7rem; font-size: var(--protected-label-size); line-height: 1.2; white-space: normal; overflow-wrap: anywhere; text-align: center; }
/* Compact visible controls retain a 44px touch area in the surrounding gap. */
.protected-page .root-button::after { content: ""; position: absolute; inset: -5px 0; }
.protected-metrics {
  border-bottom: 1px solid var(--fs-line);
  min-height: 58px;
  align-items: center;
  gap: 1.5rem;
  display: flex;
  font-size: var(--protected-meta-size);
  font-weight: 800;
}
.protected-metrics b { color: var(--fs-red); font: 800 1.2rem/1 FS Display, Impact, sans-serif; margin-right: 0.3rem; }
.protected-page-status { min-height: 1.4rem; margin: 0.6rem 0; }
.protected-page-status:empty { display: none; }
.protected-status { color: var(--fs-red); font-size: var(--protected-helper-size); font-weight: 750; }
.protected-workspace {
  border-top: 0;
  grid-template-columns: 22rem minmax(0, 1fr);
  min-height: 42rem;
  min-width: 0;
  display: grid;
}
.protected-queue { border-right: 1px solid var(--fs-line); padding: 1.4rem 1.25rem 1rem 0; min-width: 0; }
.protected-queue-tools { align-items: center; justify-content: space-between; gap: 0.8rem; margin-bottom: 0.85rem; display: flex; }
.protected-refresh-action { flex: 0 0 auto; }
.protected-action-menu { position: relative; z-index: 6; }
.protected-action-menu summary {
  border: 1px solid var(--fs-line);
  background: transparent;
  color: var(--fs-ink);
  min-height: 44px;
  align-items: center;
  gap: 0.5rem;
  padding: 0.65rem 0.75rem;
  cursor: pointer;
  display: flex;
  list-style: none;
  font: 800 var(--protected-meta-size)/1.1 FS Display, Impact, sans-serif;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}
.protected-action-menu summary::-webkit-details-marker { display: none; }
.protected-action-menu summary span { color: var(--fs-red); font-size: 1rem; line-height: 0.7; transition: transform 160ms ease; }
.protected-action-menu[open] summary span { transform: rotate(180deg); }
.protected-action-menu summary small { color: var(--fs-red); margin-left: auto; font: 700 var(--protected-helper-size)/1 Inter, system-ui, sans-serif; letter-spacing: 0; text-transform: none; }
.protected-action-menu summary:focus-visible { outline: 2px solid var(--fs-red); outline-offset: 3px; }
.protected-menu-panel {
  border: 1px solid var(--fs-line);
  border-top: 3px solid var(--fs-red);
  background: var(--protected-paper);
  color: var(--fs-ink);
  box-shadow: 0 18px 40px #0007;
  width: min(18rem, calc(100vw - 2rem));
  padding: 0.45rem;
  position: absolute;
  top: calc(100% + 0.35rem);
  left: 0;
}
.protected-record-menu .protected-menu-panel { right: 0; left: auto; }
.protected-menu-panel :is(button, .root-button, .protected-text-action, .protected-archive) {
  border: 0;
  border-left: 3px solid transparent;
  background: transparent;
  color: var(--fs-ink);
  width: 100%;
  min-height: 44px;
  justify-content: flex-start;
  margin: 0;
  padding: 0.65rem 0.7rem;
  cursor: pointer;
  display: flex;
  font: 800 var(--protected-meta-size)/1.2 FS Display, Impact, sans-serif;
  letter-spacing: 0.06em;
  text-align: left;
  text-decoration: none;
  text-transform: uppercase;
}
.protected-menu-panel :is(button, .root-button, .protected-text-action, .protected-archive):hover,
.protected-menu-panel :is(button, .root-button, .protected-text-action, .protected-archive):focus-visible { border-left-color: var(--fs-red); background: var(--protected-card); outline: 0; }
.protected-menu-panel :is(button, .root-button, .protected-text-action, .protected-archive).is-active,
.protected-menu-panel .protected-archive[aria-pressed="true"] { border-left-color: var(--fs-red); background: var(--protected-card); color: var(--fs-red); }
.protected-menu-panel button:disabled { cursor: wait; opacity: 0.55; }
.protected-menu-panel hr { border: 0; border-top: 1px solid var(--fs-line); margin: 0.4rem 0; }
.protected-menu-panel .protected-filters { gap: 0; margin: 0; display: grid; }
.protected-filters { flex-wrap: wrap; gap: 0 0.6rem; margin-bottom: 0.25rem; display: flex; }
.protected-filters button,
.protected-archive {
  border: 1px solid currentColor;
  position: relative;
  background: transparent;
  color: var(--fs-ink);
  min-width: 0;
  min-height: 34px;
  margin-block: 5px;
  padding: 0.4rem 0.55rem;
  font: 700 var(--protected-meta-size)/1.2 Inter, system-ui, sans-serif;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  overflow-wrap: anywhere;
  cursor: pointer;
}
.protected-filters button.is-active,
.protected-archive[aria-pressed="true"] { border-color: var(--fs-red); background: var(--fs-red); color: #fff; }
.protected-filters button::after,
.protected-archive::after { content: ""; position: absolute; inset: -5px 0; }
.protected-archive { color: var(--fs-red); margin-right: 0.6rem; margin-bottom: 0.8rem; }
.protected-filters button:focus-visible,
.protected-archive:focus-visible { outline: 2px solid var(--fs-red); outline-offset: 3px; }
.protected-search-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.protected-search,
.protected-form input,
.protected-form select,
.protected-form textarea,
.protected-dialog input,
.protected-dialog select,
.protected-dialog textarea,
.protected-sidebar :is(input, select),
.protected-reply :is(select, textarea) {
  border: 1px solid var(--fs-line);
  border-radius: 0;
  background: var(--protected-card);
  color: var(--fs-ink);
  width: 100%;
  min-height: 46px;
  min-width: 0;
  padding: 0.7rem 0.8rem;
  font: 500 calc(1rem + var(--fs-reading-increment))/1.4 Inter, system-ui, sans-serif;
}
.protected-search { margin-bottom: 1rem; }
.protected-rows { min-width: 0; display: grid; gap: 0.5rem; }
.protected-row {
  border: 1px solid var(--fs-line);
  border-left: 4px solid var(--fs-line);
  background: var(--protected-card);
  color: var(--fs-ink);
  min-width: 0;
  text-align: left;
  padding: 0.8rem 0.75rem;
  cursor: pointer;
}
.protected-row.is-selected { border-left-color: var(--fs-red); }
.people-directory-actions { align-items: center; flex-wrap: wrap; gap: 0.35rem 0.7rem; margin-bottom: 0.65rem; display: flex; }
.people-directory-actions .protected-archive { margin: 0; }
.people-bulk-bar { border: 1px solid var(--fs-red); background: var(--protected-card); margin: 0.4rem 0 0.9rem; padding: 0.75rem; }
.people-bulk-bar > strong { color: var(--fs-red); font: 800 1rem/1 FS Display, Impact, sans-serif; letter-spacing: 0.05em; text-transform: uppercase; }
.people-bulk-bar .protected-actions { align-items: center; margin-top: 0.65rem; }
.people-selectable-row { grid-template-columns: 44px minmax(0, 1fr); gap: 0.35rem; padding: 0; cursor: default; display: grid; }
.people-selectable-row.is-checked { border-left-color: var(--fs-red); }
.people-row-check { width: 44px; min-height: 44px; align-items: start; justify-content: center; padding-top: 0.85rem; cursor: pointer; display: flex; }
.people-row-check input { width: 20px; height: 20px; accent-color: var(--fs-red); }
.people-member-open { border: 0; background: transparent; color: inherit; min-width: 0; padding: 0.8rem 0.75rem 0.8rem 0; cursor: pointer; font: inherit; text-align: left; }
.people-member-open:focus-visible { outline: 2px solid var(--fs-red); outline-offset: -3px; }
.people-import-preview { border: 1px solid var(--fs-line); max-height: 17rem; margin: 0; padding: 0; overflow: auto; list-style: none; }
.people-import-preview li { border-bottom: 1px solid var(--fs-line); gap: 0.25rem; padding: 0.7rem 0.8rem; display: grid; }
.people-import-preview li:last-child { border-bottom: 0; }
.people-import-preview li span { font-size: var(--protected-helper-size); font-weight: 500; letter-spacing: 0; text-transform: none; overflow-wrap: anywhere; }
.people-import-preview .is-duplicate span { color: var(--fs-red); font-weight: 750; }
.protected-row[data-care-resource] { border-left-color: var(--fs-red); }
.protected-row[data-care-resource] p { display: block; overflow: visible; -webkit-line-clamp: unset; }
.protected-row header { align-items: start; justify-content: space-between; flex-wrap: wrap; gap: 0.5rem 0.8rem; display: flex; }
.protected-row strong { font: 800 1.18rem/1 FS Display, Impact, sans-serif; }
.protected-row time { color: var(--fs-ink); font-size: var(--protected-meta-size); white-space: nowrap; }
.protected-row p { color: var(--fs-ink); margin: 0.45rem 0 0.25rem; font-size: var(--protected-helper-size); line-height: 1.45; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }

.protected-row small,
.protected-message small { font-size: var(--protected-meta-size); font-weight: 850; letter-spacing: 0.07em; text-transform: uppercase; }
.protected-condition-icons { display: flex; flex-wrap: wrap; align-items: center; gap: 0.65rem; margin-top: 0.75rem; color: var(--fs-red); }
.protected-condition-icon { width: 1.5rem; height: 1.5rem; display: inline-flex; flex: 0 0 auto; }
.protected-condition-icon svg { width: 100%; height: 100%; }
.protected-row-meta { display: flex; flex-wrap: wrap; gap: 0.35rem 0.8rem; margin-top: 0.55rem; font-size: var(--protected-meta-size); line-height: 1.4; }
.protected-row-meta > span:first-child { font-weight: 800; }
.protected-message-disclosure summary { list-style: none; cursor: pointer; padding: 0.6rem 0; white-space: pre-wrap; }
.protected-message-disclosure summary::-webkit-details-marker { display: none; }
.protected-message-more, .protected-message-less { color: var(--fs-red); text-decoration: underline; display: block; padding-block: 0.5rem; min-height: 44px; font-weight: 750; }
.protected-message-less, .protected-message-disclosure[open] .protected-message-more, .protected-message-disclosure[open] summary > span:first-child { display: none; }
.protected-message-disclosure[open] .protected-message-less { display: block; }
.protected-list-empty { color: var(--fs-ink); font-size: var(--protected-helper-size); }
.protected-detail { min-width: 0; padding: 1.25rem 0 2rem 1.75rem; }
.protected-empty { border-top: 3px solid var(--fs-ink); padding: 1.5rem; }
.protected-empty h2 { font: 800 clamp(2rem, 5vw, 3.4rem)/0.95 FS Display, Impact, sans-serif; text-transform: uppercase; margin: 0; }
.protected-titlebar { border-bottom: 1px solid var(--fs-line); justify-content: space-between; gap: 1.5rem; padding-bottom: 1.35rem; display: flex; }
.protected-section-heading { align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; display: flex; }
.protected-section-heading h3 { margin: 0; }
.protected-number { color: var(--fs-ink); font-size: var(--protected-meta-size); font-weight: 900; letter-spacing: 0.13em; text-transform: uppercase; overflow-wrap: anywhere; }
.protected-titlebar h2 { font: 800 clamp(2.6rem, 5vw, 4rem)/0.88 FS Display, Impact, sans-serif; margin: 0.4rem 0 0.6rem; }
.protected-meta { align-items: center; flex-wrap: wrap; gap: 0.8rem; color: var(--fs-ink); font-size: var(--protected-meta-size); display: flex; }

.protected-meta b { color: var(--fs-red); letter-spacing: 0.08em; text-transform: uppercase; }
.protected-actions { align-items: start; flex-wrap: wrap; gap: 0.6rem; display: flex; }
.protected-text-action { border: 0; border-bottom: 1px solid currentColor; background: transparent; color: inherit; min-height: 2.8rem; padding: 0.4rem; font: 650 var(--protected-label-size)/1 Inter, sans-serif; letter-spacing: 0.1em; text-transform: uppercase; cursor: pointer; }
.protected-detail-grid { grid-template-columns: minmax(0, 1fr) 18rem; gap: 1.75rem; padding-top: 1.5rem; display: grid; }
.protected-section { border-top: 3px solid var(--fs-ink); background: var(--protected-card); margin-bottom: 1rem; padding: 1.2rem; }
.protected-section.is-confidential { border-top-color: var(--fs-red); }
.protected-section h3,
.protected-sidebar-block h3 { font: 800 1.05rem/1 FS Display, Impact, sans-serif; letter-spacing: 0.08em; text-transform: uppercase; margin: 0 0 1rem; }
.protected-facts { display: grid; grid-template-columns: minmax(5rem, 0.65fr) minmax(0, 1fr); gap: 0.7rem 1rem; margin: 0 0 1.2rem; font-size: var(--protected-helper-size); line-height: 1.5; }
.protected-facts dt { font-weight: 750; }
.protected-facts dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.protected-record-text { font: 400 calc(clamp(1.15rem, 1.5vw, 1.42rem) + var(--fs-reading-increment))/1.5 FS Serif, Georgia, serif; margin: 0; overflow-wrap: anywhere; }
.protected-confidential-note { border-top: 1px solid var(--fs-line); color: var(--fs-red); margin: 1.15rem 0 0; padding-top: 0.8rem; font-size: var(--protected-meta-size); font-weight: 900; letter-spacing: 0.07em; text-transform: uppercase; }
.protected-conversation { display: grid; gap: 0.7rem; }
.protected-message { border: 1px solid var(--fs-line); padding: 0.9rem 1rem; }
.protected-message header { justify-content: space-between; flex-wrap: wrap; overflow-wrap: anywhere; gap: 0.5rem 1rem; display: flex; font-size: var(--protected-meta-size); text-transform: uppercase; letter-spacing: 0.06em; }
.protected-message time { color: var(--fs-ink); }
.protected-message p { margin: 0.65rem 0 0; font-size: calc(1rem + var(--fs-reading-increment)); line-height: 1.55; overflow-wrap: anywhere; white-space: pre-wrap; }
.protected-sidebar { display: grid; align-content: start; gap: 1rem; }
.protected-sidebar-block { border: 1px solid var(--fs-line); background: var(--protected-card); padding: 1rem; }
.protected-sidebar-block label { display: grid; gap: 0.35rem; margin-bottom: 0.85rem; font-size: var(--protected-label-size); font-weight: 850; letter-spacing: 0.08em; text-transform: uppercase; }
.protected-sidebar-block p { font-size: var(--protected-helper-size); line-height: 1.5; overflow-wrap: anywhere; }
.protected-lead-notes { border-color: var(--fs-red); background: var(--protected-dark); color: #fff; }
.protected-lead-notes p { font: 400 calc(1rem + var(--fs-reading-increment))/1.45 FS Serif, Georgia, serif; }
.protected-lead-notes textarea { background: #fff; color: #111214; min-height: 10rem; resize: vertical; text-transform: none; letter-spacing: 0; }
.protected-lead-notes .root-button { width: 100%; justify-content: center; margin-top: 0.7rem; }
.protected-visually-normal { text-transform: none !important; letter-spacing: 0 !important; }
.protected-care-route { border-top: 3px solid var(--fs-red); }
.protected-reply { border-top: 1px solid var(--fs-line); margin-top: 1rem; padding-top: 1rem; }
.protected-reply > label { font: 800 var(--protected-label-size)/1 FS Display, Impact, sans-serif; letter-spacing: 0.08em; text-transform: uppercase; display: block; margin-bottom: 0.55rem; }
.protected-reply > label select { width: min(100%, 18rem); margin-top: 0.4rem; text-transform: none; letter-spacing: 0; }
.protected-reply footer { justify-content: space-between; align-items: center; gap: 1rem; margin-top: 0.7rem; display: flex; }
.protected-reply footer small { color: var(--fs-ink); max-width: 27rem; font-size: var(--protected-helper-size); line-height: 1.4; }
.protected-mobile-list { display: none; }
.protected-loading { padding: 2rem; font-size: calc(1rem + var(--fs-reading-increment)); font-weight: 750; }
.protected-access-denied { border-top: 3px solid var(--fs-red); background: var(--protected-card); max-width: 44rem; margin-top: 2rem; padding: 2rem; }
.protected-access-denied h2 { font: 800 clamp(2rem, 5vw, 3.5rem)/0.95 FS Display, Impact, sans-serif; text-transform: uppercase; margin: 0; }

.protected-dialog { border: 0; background: transparent; width: min(48rem, calc(100% - 2rem)); max-height: min(90dvh, 54rem); padding: 0; }
.protected-dialog::backdrop { background: #090a0cbf; backdrop-filter: blur(3px); }
.protected-dialog-shell { background: var(--protected-paper); color: var(--fs-ink); box-shadow: 0 25px 80px #0008; max-height: min(90dvh, 54rem); overflow: auto; }
.protected-dialog-shell > header { border-bottom: 1px solid var(--fs-line); align-items: start; grid-template-columns: minmax(0, 1fr) 44px; gap: 1rem; padding: 1.2rem 1.4rem; display: grid; position: sticky; top: 0; background: var(--protected-paper); z-index: 2; }
.protected-dialog-shell > header > div { min-width: 0; overflow-wrap: anywhere; }
.protected-dialog-shell > header .root-kicker { margin-bottom: 0.3rem; }
.protected-dialog-shell > header h2 { font: 800 2.5rem/0.9 FS Display, Impact, sans-serif; text-transform: uppercase; margin: 0; }
.protected-dialog-close { border: 1px solid var(--fs-line); background: transparent; color: inherit; width: 44px; height: 44px; font-size: 1.8rem; cursor: pointer; }
.protected-dialog-body { padding: 1.35rem; }
[data-care-resource-body] :is(p, li) { font-size: calc(0.95rem + var(--fs-reading-increment)); line-height: 1.6; overflow-wrap: anywhere; }
[data-care-resource-body] a { color: var(--fs-red); text-underline-offset: 0.2em; }
[data-care-resource-body] h4 { margin-bottom: 0.5rem; font-size: calc(1rem + var(--fs-reading-increment)); }
[data-care-resources] .protected-section,
[data-care-workflow-editor] .protected-section { border-top-color: var(--fs-red); }
.protected-dialog-body > label,
.protected-form-grid > label { gap: 0.4rem; font-size: var(--protected-label-size); font-weight: 850; letter-spacing: 0.07em; text-transform: uppercase; display: grid; }
.protected-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; display: grid; }
.protected-form-wide { grid-column: 1 / -1; }
.protected-form-grid label small { color: var(--fs-ink); font-size: var(--protected-helper-size); line-height: 1.4; letter-spacing: 0; text-transform: none; }
.protected-check { align-items: center; grid-template-columns: auto 1fr; }
.protected-check input { width: 20px; min-height: 20px; }
.protected-dialog-shell > footer { border-top: 1px solid var(--fs-line); justify-content: end; gap: 0.75rem; padding: 1rem 1.35rem; display: flex; }
.protected-dialog-shell > .protected-status { margin: 0; padding: 0 1.35rem 1rem; }
.protected-care-dialog { width: min(68rem, calc(100% - 2rem)); }
.protected-care-form { display: grid; gap: 1rem; }
.protected-form-section { border-top: 3px solid var(--fs-ink); background: var(--protected-card); padding: 1.15rem; }
.protected-form-section > header { align-items: start; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; display: flex; }
.protected-form-section > header h3 { font: 800 1.2rem/1 FS Display, Impact, sans-serif; letter-spacing: 0.06em; text-transform: uppercase; margin: 0; }
.protected-form-section > header p { color: var(--fs-ink); max-width: 35rem; margin: 0.25rem 0 0; font-size: var(--protected-helper-size); line-height: 1.45; }
.protected-form-section > label { gap: 0.4rem; font-size: var(--protected-label-size); font-weight: 850; letter-spacing: 0.07em; text-transform: uppercase; display: grid; }
.protected-lead-editor { border-top-color: var(--fs-red); }
.protected-workflow { --care-progress: 0%; }
.protected-workflow > header { align-items: start; justify-content: space-between; gap: 1rem; display: flex; }
.protected-workflow > header .root-kicker { margin: 0 0 0.35rem; }
.protected-workflow > header h3 { margin-bottom: 0; }
.protected-care-guides { display: grid; gap: 0.8rem; margin-top: 1rem; }
.protected-care-guide { border-left: 3px solid var(--fs-red); background: var(--protected-card); padding: 1rem 1.1rem; }
.protected-care-guide h4 { margin: 0; font: 800 1.2rem/1 FS Display, Impact, sans-serif; letter-spacing: 0.02em; text-transform: uppercase; }
.protected-care-guide > p { margin: 0.55rem 0 0; font-size: calc(0.9rem + var(--fs-reading-increment)); line-height: 1.55; }
.protected-care-guide dl { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; margin: 0.85rem 0 0; display: grid; }
.protected-care-guide dl div { border-top: 1px solid var(--fs-line); padding-top: 0.55rem; }
.protected-care-guide dt { color: var(--fs-red); font: 800 calc(0.76rem + var(--fs-reading-increment))/1 FS Display, Impact, sans-serif; letter-spacing: 0.08em; text-transform: uppercase; }
.protected-care-guide dd { margin: 0.35rem 0 0; font-size: calc(0.88rem + var(--fs-reading-increment)); line-height: 1.4; }
.protected-workflow details { border-top: 1px solid var(--fs-line); margin-top: 0.85rem; padding-top: 0.75rem; }
.protected-workflow summary { cursor: pointer; font: 800 calc(0.82rem + var(--fs-reading-increment))/1 FS Display, Impact, sans-serif; letter-spacing: 0.07em; text-transform: uppercase; }
.protected-workflow summary b { color: var(--fs-red); float: right; }
.protected-workflow details > :is(div, ul) { margin-top: 0.75rem; }
.protected-workflow li { margin-bottom: 0.4rem; font-size: calc(0.84rem + var(--fs-reading-increment)); line-height: 1.45; }
.protected-workflow > footer { justify-content: end; gap: 0.6rem; margin-top: 1rem; display: flex; }

.protected-account-main { min-height: calc(100dvh - 5rem); padding: 2rem 0 7rem; }
.protected-login { width: min(calc(100% - 2.5rem), 70rem); min-height: 38rem; grid-template-columns: minmax(18rem, 0.8fr) minmax(22rem, 1fr); margin-inline: auto; display: grid; }
.protected-login-art { min-height: 34rem; overflow: hidden; }
.protected-login-art img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.05); display: block; }
.protected-login-panel { background: var(--protected-card); align-content: center; padding: clamp(2rem, 6vw, 5rem); display: grid; }
.protected-login-intro { max-width: 33rem; font: 400 calc(1.15rem + var(--fs-reading-increment))/1.5 FS Serif, Georgia, serif; }
.protected-form { max-width: 28rem; display: grid; gap: 0.45rem; }
.protected-form label { margin-top: 0.6rem; font-size: var(--protected-label-size); font-weight: 850; letter-spacing: 0.08em; text-transform: uppercase; }
.protected-form .root-button { justify-content: center; margin-top: 0.8rem; }
.protected-account-name { font-weight: 800; }
.protected-account-home nav { width: 100%; margin: 1rem 0; display: grid; }
.protected-app-link { border-top: 1px solid var(--fs-line); text-decoration: none; padding: 0.9rem 0; display: grid; }
.protected-app-link:last-child { border-bottom: 1px solid var(--fs-line); }
.protected-app-link strong { font: 800 1.25rem/1 FS Display, Impact, sans-serif; text-transform: uppercase; }
.protected-app-link span { color: var(--fs-ink); font-size: calc(0.84rem + var(--fs-reading-increment)); margin-top: 0.35rem; }

@media (820px < width <= 1180px) {
  .protected-detail-grid { grid-template-columns: minmax(0, 1fr); }
  .protected-titlebar { flex-wrap: wrap; }
}

@media (width <= 820px) {
  .protected-module-main { width: calc(100% - 1.5rem); padding-top: 1.6rem; }
  .protected-module-head { align-items: flex-start; flex-wrap: wrap; gap: 0.65rem; min-height: 11rem; padding: 1.15rem; }
  .protected-module-head h1 { font-size: clamp(3rem, 14vw, 4.5rem); }
  .protected-head-actions { width: 100%; flex-wrap: wrap; justify-content: space-between; }
  .protected-role { display: none; }
  .protected-metrics { grid-template-columns: repeat(auto-fit, minmax(min(100%, 9.5rem), 1fr)); gap: 0.5rem 1rem; padding-block: 0.7rem; white-space: normal; display: grid; }
  .protected-workspace { grid-template-columns: minmax(0, 1fr); }
  .protected-queue { border-right: 0; padding-right: 0; }
  .protected-workspace.show-detail .protected-queue { display: none; }
  .protected-detail { padding: 0; }
  .protected-workspace:not(.show-detail) .protected-detail { display: none; }
  .protected-mobile-list { border: 0; border-bottom: 1px solid currentColor; background: transparent; color: inherit; min-height: 44px; padding: 0; margin-bottom: 1.2rem; font: 500 calc(0.78rem + var(--fs-reading-increment))/1 Inter, sans-serif; letter-spacing: 0.1em; text-transform: uppercase; display: inline-block; }
  .protected-titlebar { display: block; }
  .protected-titlebar h2 { font-size: clamp(2.7rem, 14vw, 4rem); }
  .protected-actions { margin-top: 1.2rem; }
  .protected-detail-grid { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .protected-section-heading { align-items: flex-start; }
  .protected-record-menu { flex: 0 0 auto; }
  .protected-sidebar { grid-row: 1; margin-bottom: 1rem; }
  .protected-section { padding: 1rem; }
  .protected-reply footer { align-items: stretch; flex-direction: column; }
  .protected-reply footer .root-button { justify-content: center; }
  .protected-login { width: calc(100% - 1.5rem); grid-template-columns: minmax(0, 1fr); }
  .protected-login-art { min-height: 13rem; max-height: 28dvh; }
  .protected-login-panel { padding: 1.6rem 1.25rem 2rem; }
  .protected-login-panel h1 { font-size: clamp(2.5rem, 11vw, 3.8rem); overflow-wrap: anywhere; }
  .protected-form-grid { grid-template-columns: minmax(0, 1fr); }
  .protected-form-wide { grid-column: 1; }
  .protected-dialog { width: calc(100% - 1rem); max-height: calc(100dvh - 1rem); }
  .protected-dialog-shell { max-height: calc(100dvh - 1rem); }
  .protected-dialog-shell > header,
  .protected-form-section > header,
  .protected-workflow > header { flex-wrap: wrap; }
  .protected-dialog-shell > footer { flex-wrap: wrap; }
  .protected-care-guide dl { grid-template-columns: minmax(0, 1fr); }
}

@media (width <= 520px) {
  .protected-row { padding: 0.75rem; }
  .protected-dialog-shell > header,
  .protected-dialog-body,
  .protected-dialog-shell > footer { padding-inline: 1rem; }
  .protected-dialog-shell > footer .root-button { width: 100%; justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
  .protected-page *, .fs-shell-account-menu * { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}

/* Study the Word uses the protected SBG shell as one reader and preparation
   workspace. These rules own only its layout and Scripture semantics. */
.study-workspace-navigation {
  max-width: 100%;
  min-width: 0;
  margin: 1rem 0 0.5rem;
}
.study-workspace-navigation button {
  min-block-size: 44px;
}
.study-panel {
  width: min(100%, var(--fs-shell-max));
  max-width: 100%;
  min-width: 0;
}
.study-reader-layout,
[data-study-research-layout],
[data-study-formation-layout] {
  grid-template-columns: minmax(0, 1fr) minmax(15rem, 20rem);
  gap: 1.25rem;
  min-width: 0;
  padding-top: 1rem;
  display: grid;
}
[data-study-formation-layout] {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
[data-study-reader-toolbar],
[data-study-library-tools] {
  margin-top: 1rem;
}
body[data-page="study"] .protected-module-head {
  min-height: clamp(9rem, 13vw, 11.5rem);
}
body[data-page="study"] .protected-module-head h1 {
  font-size: clamp(2.8rem, 5vw, 4.4rem);
}
[data-study-reader-toolbar] {
  align-items: end;
  flex-wrap: wrap;
  gap: 0.65rem;
}
.study-reader-quick-tools { display: none; }
[data-study-reader-toolbar] > label,
[data-study-reference-form] > label {
  min-width: min(100%, 13rem);
  margin: 0;
}
[data-study-reference-form] {
  align-items: end;
  flex: 1 1 22rem;
  gap: 0.5rem;
  margin: 0;
}
[data-study-reference-form] > label { flex: 1 1 16rem; }
[data-study-passage-picker] [data-study-picker-options] { max-height: min(58dvh, 36rem); overflow-y: auto; }
[data-study-passage-picker] [data-study-picker-options] > .protected-filters { grid-template-columns: repeat(auto-fit, minmax(3rem, 1fr)); display: grid; }
[data-study-passage-picker] [data-study-picker-options] > .protected-filters button { justify-content: center; }
[data-study-highlight-options] { grid-template-columns: repeat(2, minmax(0, 1fr)); display: grid; }
[data-study-highlight-options] .protected-row { min-height: 5.25rem; }
[data-study-highlight-options] [data-highlight-style] {
  min-width: 3.1rem;
  padding: 0.25rem 0.4rem;
  color: var(--fs-ink);
  font-family: FS Serif, Georgia, serif;
  text-align: center;
}
[data-study-reader] {
  min-width: 0;
  padding: clamp(1rem, 2.8vw, 2rem);
}
[data-study-reader] > :first-child { margin-top: 0; }
[data-study-reader] > h3,
[data-study-reader] > h4 {
  margin: 2rem 0 0.75rem;
  font: 800 calc(1rem + var(--fs-reading-increment))/1.15 FS Display, Impact, sans-serif;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.study-scripture-parallel {
  color: var(--fs-red);
  margin: -0.35rem 0 1rem;
  font-size: calc(0.76rem + var(--fs-reading-increment));
  font-weight: 800;
  letter-spacing: 0.05em;
}
.study-scripture-paragraph {
  margin: 0 0 1rem;
  font: 400 calc(1.18rem + var(--fs-reading-increment))/1.72 FS Serif, Georgia, serif;
}
.study-scripture-paragraph[data-scripture-style^="q"] {
  border-left: 3px solid var(--fs-red);
  padding-left: 1rem;
}
.study-verse {
  border: 0;
  background: transparent;
  color: var(--fs-ink);
  min-block-size: 44px;
  margin: 0;
  padding: 0.14rem 0.12rem;
  text-align: left;
  font: inherit;
  line-height: inherit;
  cursor: pointer;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}
.study-verse > span {
  border-radius: 0.12em;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}
.study-verse sup {
  color: var(--fs-red);
  margin-right: 0.3rem;
  padding: 0.2em 0.28em;
  border-radius: 999px;
  font: 800 calc(0.62rem + var(--fs-reading-increment))/1 Inter, system-ui, sans-serif;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}
.study-verse em { color: var(--fs-red); font-style: normal; }
.study-verse:hover > span { background: color-mix(in srgb, var(--fs-ink) 6%, transparent); }
.study-verse:focus-visible { outline: 0; }
.study-verse:focus-visible sup { outline: 2px solid var(--fs-red); outline-offset: 2px; }
.study-verse[aria-pressed="true"] sup {
  background: var(--fs-red);
  color: var(--fs-surface);
}
.study-verse[aria-pressed="true"] > span {
  text-decoration: underline 0.075em var(--fs-red);
  text-underline-offset: 0.2em;
}
.study-verse.is-highlighted > span {
  background: linear-gradient(to bottom, transparent 0 24%, var(--study-mark) 24% 88%, transparent 88%);
  padding-inline: 0.06em;
}
[data-study-highlight-options] [data-highlight-style] {
  background: linear-gradient(to bottom, transparent 0 20%, var(--study-mark) 20% 88%, transparent 88%);
}
.study-verse[data-highlight-style="illumination"],
[data-study-highlight-options] [data-highlight-style="illumination"] { --study-mark: color-mix(in srgb, #d0ad35 32%, var(--fs-surface)); }
.study-verse[data-highlight-style="promise"],
[data-study-highlight-options] [data-highlight-style="promise"] { --study-mark: color-mix(in srgb, #2f73aa 28%, var(--fs-surface)); }
.study-verse[data-highlight-style="growth"],
[data-study-highlight-options] [data-highlight-style="growth"] { --study-mark: color-mix(in srgb, #3c8751 28%, var(--fs-surface)); }
.study-verse[data-highlight-style="love"],
[data-study-highlight-options] [data-highlight-style="love"] { --study-mark: color-mix(in srgb, #8754b3 26%, var(--fs-surface)); }
.study-verse[data-highlight-style="warning"],
[data-study-highlight-options] [data-highlight-style="warning"] { --study-mark: color-mix(in srgb, #b17d2d 30%, var(--fs-surface)); }
.study-verse[data-highlight-style="underline"] > span,
[data-study-highlight-options] [data-highlight-style="underline"] { background: transparent; text-decoration: underline 0.12em var(--fs-red); text-underline-offset: 0.2em; }
.study-verse[data-highlight-style="emphasis"] > span { font-weight: 850; }
.study-verse[data-highlight-style="emphasis"],
[data-study-highlight-options] [data-highlight-style="emphasis"] { --study-mark: var(--fs-surface-2); }
.study-verse[data-highlight-style="boxed"] > span { background: transparent; border: 1.5px solid var(--fs-red); padding-inline: 0.12em; }
[data-study-highlight-options] [data-highlight-style="boxed"] { --study-mark: transparent; border: 1.5px solid var(--fs-red); }
body[data-page="study"] :is(input, select, textarea):focus-visible {
  outline: 0;
  border-bottom: 3px solid var(--fs-red);
}
.study-scripture-notes {
  border-top: 1px solid var(--fs-line);
  margin-top: 2rem;
  padding-top: 1rem;
}
.study-scripture-notes p {
  font-size: calc(0.84rem + var(--fs-reading-increment));
  line-height: 1.55;
}
.study-editor-label {
  gap: 0.5rem;
  font-size: calc(0.8rem + var(--fs-reading-increment));
  font-weight: 850;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  display: grid;
}
.study-editor {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  resize: vertical;
  font: 400 calc(1rem + var(--fs-reading-increment))/1.6 FS Serif, Georgia, serif;
}
.study-rich-editor {
  border: 1px solid var(--fs-line);
  background: var(--fs-surface);
  min-height: 28rem;
  padding: 1rem;
  text-transform: none;
  overflow-wrap: anywhere;
}
.study-rich-editor:focus { border-color: var(--fs-red); outline: 2px solid var(--fs-red); }
.study-rich-editor p:first-child { margin-top: 0; }
.study-rich-editor blockquote { border-left: 4px solid var(--fs-red); margin-inline: 0; padding-left: 1rem; }
.study-rich-editor mark { background: var(--fs-surface-2); color: var(--fs-red); }
.study-rich-editor :is(strong, b),
.study-outline-content :is(strong, b),
[data-study-present-manuscript] :is(strong, b) {
  color: var(--fs-ink);
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 900;
}
.study-manuscript-document {
  width: 100%;
  max-width: 52rem;
  min-width: 0;
  margin: 0 auto;
  overflow-wrap: anywhere;
}
.study-manuscript-document,
.study-manuscript-document * { box-sizing: border-box; }
.study-manuscript-document > h1 {
  margin: 0 0 0.35em;
  font: 850 clamp(2rem, 6vw, 3.7rem)/0.92 FS Display, Impact, sans-serif;
  letter-spacing: -0.025em;
  overflow-wrap: anywhere;
  text-transform: uppercase;
}
.study-manuscript-meta { border-bottom: 3px solid var(--fs-red); margin: 0 0 2rem; padding-bottom: 1.25rem; }
.study-manuscript-body > :is(p, blockquote, ul, ol),
.study-manuscript-document > section > :is(p, blockquote, ul, ol) {
  max-width: 100%;
  white-space: normal;
  word-break: normal;
  overflow-wrap: anywhere;
}
.study-manuscript-block { min-width: 0; }
.study-manuscript-block + .study-manuscript-block { border-top: 1px solid var(--fs-line); margin-top: 2.25rem; padding-top: 2rem; }
.study-manuscript-type {
  color: var(--fs-red);
  margin: 0 0 0.45rem;
  font: 800 0.78rem/1 FS Display, Impact, sans-serif;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.study-manuscript-block > h2 {
  margin: 0 0 0.35rem;
  font: 900 calc(1.25rem + var(--fs-reading-increment))/1.15 Georgia, "Times New Roman", serif;
  text-transform: none;
}
.study-manuscript-reference { margin: 0 0 1.25rem; }
.study-manuscript-reference > span { font: 800 0.78rem/1 Inter, system-ui, sans-serif; letter-spacing: 0.06em; text-transform: uppercase; }
.study-manuscript-body > .study-manuscript-block:first-child { border-top: 0; margin-top: 0; padding-top: 0; }
.study-editor-toolbar { margin-bottom: 0.65rem; }
.study-section-notes-field { min-width: 0; display: grid; gap: 0.5rem; }
.study-section-notes-field > span {
  font-size: calc(0.8rem + var(--fs-reading-increment));
  font-weight: 850;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}
.study-section-editor { min-height: 18rem; }
[data-study-manuscript-view] { min-height: 0; overflow-x: hidden; resize: none; }
.study-checklist {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.55rem 1rem;
  display: grid;
}
.study-checklist .protected-check {
  border-bottom: 1px solid var(--fs-line);
  min-height: 44px;
  gap: 0.65rem;
  padding: 0.45rem 0;
  font-size: var(--protected-helper-size);
  line-height: 1.35;
}
.study-checklist .protected-check input { margin: 0; }
.study-outline { min-width: 0; display: grid; gap: 0.75rem; }
.study-outline .protected-message header > span { display: flex; flex-wrap: wrap; gap: 0.25rem; }
.study-outline-content { font: 400 calc(1rem + var(--fs-reading-increment))/1.6 FS Serif, Georgia, serif; }
.study-outline-content > :first-child { margin-top: 0; }
.study-outline-content > :last-child { margin-bottom: 0; }
.study-outline-content blockquote { border-left: 4px solid var(--fs-red); margin-inline: 0; padding-left: 1rem; }
.study-outline-content mark { background: var(--fs-surface-2); color: var(--fs-red); }
.study-outline-footer { border-top: 1px solid var(--fs-line); margin-top: 1rem; padding-top: 0.75rem; }
.study-timer {
  border-top: 1px solid var(--fs-line);
  align-items: center;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin-top: 1rem;
  padding-top: 1rem;
  display: flex;
}
.study-timer > strong {
  min-width: 5.5rem;
  font: 800 calc(1.8rem + var(--fs-reading-increment))/1 FS Display, Impact, sans-serif;
  letter-spacing: 0.05em;
}
[data-study-search-results] { margin-top: 1rem; }
.study-scripture-link {
  color: inherit;
  text-decoration-color: var(--fs-red);
  text-decoration-thickness: 2px;
  text-underline-offset: 0.18em;
}
.study-scripture-list,
.study-commentary-list,
.study-commentary > div,
.study-resource-introduction,
[data-study-resource-results] {
  min-width: 0;
  display: grid;
  gap: 0.85rem;
}
.study-scripture-tray-verse {
  margin: 0 0 0.7rem;
  font: 400 calc(1.05rem + var(--fs-reading-increment))/1.62 FS Serif, Georgia, serif;
}
.study-scripture-tray-verse sup {
  color: var(--fs-red);
  font-family: Inter, system-ui, sans-serif;
  font-size: 0.68em;
  font-weight: 850;
}
.study-scripture-tray { --study-scripture-surface: #f2f0eb; color-scheme: light dark; opacity: 1; isolation: isolate; }
html[data-theme="dark"] .study-scripture-tray { --study-scripture-surface: #111214; }
.study-scripture-tray-panel,
.study-scripture-tray-panel > header,
.study-scripture-tray-panel .protected-dialog-body,
.study-scripture-tray-panel .protected-section,
.study-scripture-tray-panel > footer { background: var(--study-scripture-surface); opacity: 1; }
.study-scripture-tray-panel { box-shadow: 0 24px 70px #00000057; backdrop-filter: none; -webkit-backdrop-filter: none; }
.study-scripture-passage footer,
.study-resource-card footer {
  border-top: 1px solid var(--fs-line);
  gap: 0.35rem;
  margin-top: 0.9rem;
  padding-top: 0.75rem;
  display: grid;
}
.study-commentary { padding: 0; }
.study-commentary > summary {
  cursor: pointer;
  list-style: none;
  min-block-size: 52px;
  padding: 0.85rem 1rem;
}
.study-commentary > summary::-webkit-details-marker { display: none; }
.study-commentary > summary > span { display: grid; gap: 0.2rem; }
.study-commentary > summary::after { content: "+"; float: right; margin-top: -2.25rem; font-size: 1.5rem; }
.study-commentary[open] > summary::after { content: "−"; }
.study-commentary > div { border-top: 1px solid var(--fs-line); padding: 0.85rem; }
.study-resource-card header > div { min-width: 0; display: grid; gap: 0.2rem; }
.study-resource-card header strong {
  font-size: calc(1.02rem + var(--fs-reading-increment));
  line-height: 1.35;
  overflow-wrap: anywhere;
}
.study-resource-text {
  font: 400 calc(1.14rem + var(--fs-reading-increment))/1.72 FS Serif, Georgia, serif;
  overflow-wrap: anywhere;
}
.study-reference-grid { display: flex; flex-wrap: wrap; gap: 0.55rem; }
.study-resource-introduction .protected-facts { margin: 0; }

body[data-study-presentation-open] { overflow: hidden; }
[data-study-presentation] {
  position: fixed;
  inset: 0;
  width: 100dvw;
  max-width: 100dvw;
  min-width: 0;
  overflow: hidden;
  z-index: 100;
  background: var(--protected-paper);
  color: var(--fs-ink);
  grid-template-rows: auto minmax(0, 1fr) auto;
  display: grid;
}
[data-study-present-titlebar] {
  background: var(--protected-dark);
  color: #fff;
  border-bottom: 3px solid var(--fs-red);
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 58px;
  padding: max(0.75rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) 0.75rem max(1rem, env(safe-area-inset-left));
  display: flex;
  min-width: 0;
  max-width: 100%;
}
[data-study-present-titlebar] strong {
  font: 800 1rem/1 FS Display, Impact, sans-serif;
  letter-spacing: 0.06em;
  text-align: right;
  text-transform: uppercase;
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
}
[data-study-present-wake] {
  align-items: center;
  gap: 0.45rem;
  font: 750 0.72rem/1.2 Inter, system-ui, sans-serif;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  display: inline-flex;
}
[data-study-present-wake]::before {
  width: 0.55rem;
  height: 0.55rem;
  background: var(--fs-line);
  border-radius: 50%;
  content: "";
}
[data-study-present-wake][data-active="true"]::before { background: var(--fs-red); }
[data-study-present-scroll] {
  --study-present-scale: 1;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  padding: clamp(1.25rem, 4vw, 3.5rem);
  font-size: calc(var(--study-present-scale) * 1rem);
}
[data-study-present-document] { width: 100%; max-width: 56rem; min-width: 0; margin: 0 auto; }
[data-study-present-document],
[data-study-present-document] * { box-sizing: border-box; }
[data-study-present-manuscript],
[data-study-present-section],
[data-study-present-manuscript] > *,
[data-study-present-section] > * {
  width: auto;
  max-width: 100%;
  min-width: 0;
  white-space: normal;
  word-break: normal;
}
[data-study-present-document] > header {
  border-bottom: 3px solid var(--fs-red);
  margin-bottom: 2em;
  padding-bottom: 1.4em;
}
[data-study-present-document] h1 {
  margin: 0.18em 0 0.3em;
  font: 800 clamp(2.8em, 8vw, 5.5em)/0.84 FS Display, Impact, sans-serif;
  letter-spacing: -0.035em;
  overflow-wrap: anywhere;
  text-transform: uppercase;
}
[data-study-present-document] .protected-meta { font-size: 0.8em; }
[data-study-present-manuscript],
[data-study-present-section] {
  font: 400 1.45em/1.68 FS Serif, Georgia, serif;
  overflow-wrap: anywhere;
}
[data-study-present-manuscript] :is(h1, h2, h3),
[data-study-present-section] :is(h2, h3) {
  font-family: FS Display, Impact, sans-serif;
  line-height: 1;
  text-transform: uppercase;
}
[data-study-present-section] { border-bottom: 1px solid var(--fs-line); padding: 0 0 1.6em; margin-bottom: 1.6em; }
[data-study-present-section] blockquote { border-left: 4px solid var(--fs-red); margin-inline: 0; padding-left: 1em; }
[data-study-present-toolbar] {
  background: var(--protected-card);
  border-top: 3px solid var(--fs-red);
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 0.55rem;
  min-height: 64px;
  padding: 0.45rem max(1rem, env(safe-area-inset-right)) max(0.45rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
  display: flex;
  min-width: 0;
  max-width: 100%;
}
[data-study-present-toolbar] .protected-filters { margin: 0 auto 0 0; }
[data-study-present-toolbar] .root-button { margin-block: 5px; }
[data-study-present-toolbar] svg { fill: none; stroke: currentColor; stroke-linecap: round; stroke-width: 1.8; width: 1.1rem; height: 1.1rem; }

@media (width <= 900px) {
  body[data-page="study"] [data-study-panel="read"] > .protected-titlebar {
    align-items: end;
    padding-bottom: 0.55rem;
    display: flex;
  }
  body[data-page="study"] [data-study-panel="read"] > .protected-titlebar h2 { margin-bottom: 0; }
  body[data-page="study"] [data-study-panel="read"] > .protected-titlebar .protected-actions {
    flex-wrap: nowrap;
    margin-top: 0;
  }
  .study-reader-quick-tools {
    position: sticky;
    z-index: 5;
    top: calc(4.5rem + env(safe-area-inset-top));
    border-block: 1px solid var(--fs-line);
    background: color-mix(in srgb, var(--protected-paper) 96%, transparent);
    box-shadow: 0 0.4rem 0.8rem color-mix(in srgb, var(--fs-ink) 8%, transparent);
    grid-template-columns: minmax(6rem, auto) minmax(0, 1fr);
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.8rem;
    padding: 0.45rem 0;
    backdrop-filter: blur(12px);
    display: grid;
  }
  .study-reader-quick-tools p {
    max-width: 10rem;
    margin: 0;
    font-size: var(--protected-meta-size);
    font-weight: 800;
  }
  .study-reader-quick-tools .protected-actions {
    flex-wrap: nowrap;
    padding: 0 1px;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
  }
  .study-reader-quick-tools .protected-actions::-webkit-scrollbar { display: none; }
  .study-reader-quick-tools .root-button { flex: 0 0 auto; white-space: nowrap; }
  .study-reader-layout,
  [data-study-research-layout],
  [data-study-formation-layout] {
    grid-template-columns: minmax(0, 1fr);
  }
  .study-reader-layout > .protected-sidebar { grid-row: auto; }
  body[data-page="study"] .protected-module-main { width: calc(100% - 1rem); padding-top: 0.4rem; }
  body[data-page="study"] .protected-module-head { min-height: 4.75rem; align-items: center; flex-wrap: nowrap; gap: 0.5rem; padding: 0.55rem 0.65rem; }
  body[data-page="study"] .protected-module-head .root-kicker { display: none; }
  body[data-page="study"] .protected-module-head h1 { font-size: clamp(1.85rem, 6vw, 2.6rem); line-height: 0.9; }
  body[data-page="study"] .protected-heading-art > img:first-child { width: 100%; opacity: 0.72; }
  body[data-page="study"] .protected-head-actions { width: auto; flex: 0 0 auto; margin: 0 0 0 auto; }
  body[data-page="study"] .protected-head-actions .root-button { min-height: 32px; margin: 0; padding: 0.3rem 0.5rem; }
  body[data-page="study"] .protected-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); min-height: 2.6rem; gap: 0.3rem; padding-block: 0.3rem; white-space: normal; font-size: 0.68rem; line-height: 1.15; display: grid; }
  body[data-page="study"] .protected-metrics span { min-width: 0; }
  body[data-page="study"] .protected-metrics b { font-size: 1rem; }
  body[data-page="study"] .protected-page-status { margin: 0.25rem 0; }
  body[data-page="study"] [data-study-panel="read"] > .protected-titlebar { align-items: center; gap: 0.5rem; padding-bottom: 0.35rem; }
  body[data-page="study"] [data-study-panel="read"] > .protected-titlebar .root-kicker { display: none; }
  body[data-page="study"] .protected-titlebar h2 { font-size: clamp(1.8rem, 6vw, 2.6rem); }
  .study-passage-navigation { gap: 0.25rem; }
  .study-passage-navigation .root-button { min-height: 32px; margin: 0; padding: 0.28rem 0.42rem; font-size: 0.68rem; white-space: nowrap; }
  .study-workspace-navigation { flex-wrap: nowrap; gap: 0.25rem; margin-block: 0.3rem 0.2rem; padding-bottom: 0.15rem; overflow-x: auto; scrollbar-width: none; display: flex; }
  .study-workspace-navigation::-webkit-scrollbar { display: none; }
  .study-workspace-navigation button { flex: 0 0 auto; width: auto; min-block-size: 36px; padding: 0.45rem 0.6rem; white-space: nowrap; }
  [data-study-reader-toolbar] { grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 0.35rem 0.45rem; margin-top: 0.35rem; display: grid; }
  [data-study-reader-toolbar] > [data-study-open-picker] { grid-column: 1; grid-row: 1; justify-self: start; }
  [data-study-reference-form] { grid-column: 2; grid-row: 1; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 0.35rem; margin: 0; display: grid; }
  [data-study-reference-form] > label { min-width: 0; }
  [data-study-reader-toolbar] > label { grid-column: 1 / -1; grid-row: 2; min-width: 0; }
  [data-study-reader-toolbar] label { gap: 0; display: grid; }
  [data-study-reader-toolbar] :is(input,select) { min-height: 36px; padding-block: 0.35rem; }
  [data-study-reader-toolbar] .root-button { min-height: 32px; margin: 0; }
  .study-field-label,
  .study-wide-label { display: none; }
  .study-reader-quick-tools { grid-template-columns: minmax(0, 1fr); margin-top: 0.35rem; padding: 0.25rem 0; }
  .study-reader-quick-tools p { display: none; }
  .study-reader-quick-tools .protected-actions { gap: 0.3rem; margin-top: 0; }
  .study-reader-quick-tools .root-button { min-height: 32px; margin: 0; padding: 0.3rem 0.5rem; }
  .study-reader-layout { padding-top: 0.35rem; }
  [data-study-reader] { padding: 0.7rem 0.65rem; }
}

@media (width <= 620px) {
  .study-checklist { grid-template-columns: minmax(0, 1fr); }
  body[data-page="study"] .protected-module-main { width: calc(100% - 1rem); padding-top: 0.4rem; }
  body[data-page="study"] .protected-module-head { min-height: 4.75rem; align-items: center; flex-wrap: nowrap; gap: 0.5rem; padding: 0.55rem 0.65rem; }
  body[data-page="study"] .protected-module-head .root-kicker { display: none; }
  body[data-page="study"] .protected-module-head h1 { font-size: clamp(1.85rem, 8vw, 2.35rem); line-height: 0.9; }
  body[data-page="study"] .protected-heading-art > img:first-child { width: 100%; opacity: 0.72; }
  body[data-page="study"] .protected-head-actions { width: auto; flex: 0 0 auto; margin: 0 0 0 auto; }
  body[data-page="study"] .protected-head-actions .root-button { min-height: 32px; margin: 0; padding: 0.3rem 0.5rem; }
  body[data-page="study"] .protected-metrics {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    min-height: 2.6rem;
    gap: 0.3rem;
    padding-block: 0.3rem;
    white-space: normal;
    font-size: 0.68rem;
    line-height: 1.15;
    display: grid;
  }
  body[data-page="study"] .protected-metrics span { min-width: 0; }
  body[data-page="study"] .protected-metrics b { font-size: 1rem; }
  body[data-page="study"] .protected-page-status { margin: 0.25rem 0; }
  body[data-page="study"] [data-study-panel="read"] > .protected-titlebar { align-items: center; gap: 0.5rem; padding-bottom: 0.35rem; }
  body[data-page="study"] [data-study-panel="read"] > .protected-titlebar .root-kicker { display: none; }
  body[data-page="study"] .protected-titlebar h2 { font-size: clamp(1.8rem, 8vw, 2.35rem); }
  .study-passage-navigation { gap: 0.25rem; }
  .study-passage-navigation .root-button { min-height: 32px; margin: 0; padding: 0.28rem 0.42rem; font-size: 0.68rem; white-space: nowrap; }
  .study-workspace-navigation {
    flex-wrap: nowrap;
    gap: 0.25rem;
    margin-block: 0.3rem 0.2rem;
    padding-bottom: 0.15rem;
    overflow-x: auto;
    scrollbar-width: none;
    display: flex;
  }
  .study-workspace-navigation::-webkit-scrollbar { display: none; }
  .study-workspace-navigation button { flex: 0 0 auto; width: auto; min-block-size: 36px; padding: 0.45rem 0.6rem; white-space: nowrap; }
  [data-study-reader-toolbar] {
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 0.35rem 0.45rem;
    margin-top: 0.35rem;
    display: grid;
  }
  [data-study-reader-toolbar] > [data-study-open-picker] { grid-column: 1; grid-row: 1; justify-self: start; }
  [data-study-reference-form] { grid-column: 2; grid-row: 1; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 0.35rem; margin: 0; display: grid; }
  [data-study-reference-form] > label { min-width: 0; }
  [data-study-reader-toolbar] > label { grid-column: 1 / -1; grid-row: 2; min-width: 0; }
  [data-study-reader-toolbar] label { gap: 0; display: grid; }
  [data-study-reader-toolbar] :is(input,select) { min-height: 36px; padding-block: 0.35rem; }
  [data-study-reader-toolbar] .root-button { min-height: 32px; margin: 0; }
  .study-field-label,
  .study-wide-label { display: none; }
  .study-reader-quick-tools { grid-template-columns: minmax(0, 1fr); margin-top: 0.35rem; padding: 0.25rem 0; }
  .study-reader-quick-tools p { display: none; }
  .study-reader-quick-tools .protected-actions { gap: 0.3rem; margin-top: 0; }
  .study-reader-quick-tools .root-button { min-height: 32px; margin: 0; padding: 0.3rem 0.5rem; }
  .study-reader-layout { padding-top: 0.35rem; }
  [data-study-highlight-options] { grid-template-columns: minmax(0, 1fr); }
  [data-study-reader] { padding: 0.7rem 0.65rem; }
  .study-scripture-paragraph { font-size: calc(1.08rem + var(--fs-reading-increment)); }
  body[data-page="study"] .fs-shell-rail { top: auto; bottom: calc(8.25rem + env(safe-area-inset-bottom)); transform: none; }
  [data-study-present-titlebar] { align-items: flex-start; flex-direction: column; gap: 0.45rem; }
  [data-study-present-titlebar] strong { text-align: left; }
  [data-study-present-scroll] { padding: 1.15rem 1rem; }
  [data-study-present-document] h1 { font-size: clamp(2.55em, 14vw, 4em); }
  [data-study-present-manuscript],
  [data-study-present-section] { font-size: 1.22em; line-height: 1.58; }
  [data-study-present-toolbar] { justify-content: space-between; }
  [data-study-present-toolbar] .protected-filters { flex-wrap: nowrap; }
}

/* Protected ministry overview and deferred-loading feedback. Kept after the
   preservation-locked public rules so Care and Prayer cannot alter them. */
.prayer-copy:before { background-image: url("/assets/icons/stronger-by-grace-header-176.webp"); }
.protected-loading { align-items: center; gap: 0.7rem; display: flex; }
.protected-loading:before {
  width: 0.75rem;
  height: 0.75rem;
  border: 2px solid var(--fs-line);
  border-top-color: var(--fs-red);
  border-radius: 50%;
  animation: protected-spin 0.75s linear infinite;
  content: "";
}
.protected-login[data-signed-in="true"] { width: min(calc(100% - 2.5rem), var(--fs-shell-max)); grid-template-columns: minmax(0, 1fr); }
.protected-login[data-signed-in="true"] .protected-login-art { display: none; }
.protected-login[data-signed-in="true"] .protected-login-panel { background: transparent; align-content: start; padding: 0; }
.protected-account-home { min-width: 0; }
.protected-account-home [hidden] { display: none !important; }
.protected-overview-head { flex-wrap: wrap; gap: 1.25rem; }
.protected-overview-head h1 { font-size: clamp(2.4rem, 5vw, 4.5rem); overflow-wrap: anywhere; }
.protected-overview-head > div:last-child { text-align: right; }
.protected-account-name { margin: 0 0 0.35rem; overflow-wrap: anywhere; }
.protected-overview-loading { min-height: 9rem; align-items: center; justify-content: center; gap: 0.8rem; color: var(--fs-ink); display: flex; }
.protected-activity { min-width: 2.7rem; align-items: center; gap: 0.25rem; display: inline-flex; }
.protected-activity i { width: 0.48rem; height: 0.48rem; border-radius: 50%; background: var(--fs-red); animation: protected-pulse 1s ease-in-out infinite; display: block; }
.protected-activity i:nth-child(2) { animation-delay: 0.14s; }
.protected-activity i:nth-child(3) { animation-delay: 0.28s; }
.protected-status:has(.protected-activity) { align-items: center; gap: 0.45rem; display: flex; }
.protected-overview-metrics { border-bottom: 1px solid var(--fs-line); grid-template-columns: repeat(4, minmax(0, 1fr)); display: grid; }
.protected-overview-metric { border-right: 1px solid var(--fs-line); color: var(--fs-ink); min-width: 0; min-height: 7.5rem; overflow-wrap: anywhere; padding: 1.35rem 1rem 1.25rem; text-decoration: none; display: grid; align-content: start; transition: background-color 160ms ease, border-color 160ms ease; }
.protected-overview-metric:last-child { border-right: 0; }
.protected-overview-metric:is(:hover, :focus-visible) { background: var(--fs-surface-2); border-bottom-color: var(--fs-red); outline: 2px solid transparent; }
.protected-overview-metrics span,
.protected-overview-link > span { color: var(--fs-red); font: 800 var(--protected-label-size)/1.1 FS Display, Impact, sans-serif; letter-spacing: 0.1em; text-transform: uppercase; }
.protected-overview-metrics strong { margin: 0.35rem 0 0.2rem; font: 800 clamp(2.8rem, 6vw, 4.8rem)/0.9 FS Display, Impact, sans-serif; }
.protected-overview-metrics small { color: var(--fs-ink); font-size: var(--protected-helper-size); font-weight: 700; }
.protected-overview-links { gap: 0.65rem; margin-top: 1.25rem; display: grid; }
.protected-overview-link { border: 1px solid var(--fs-line); color: var(--fs-ink); min-height: 5.25rem; grid-template-columns: minmax(0, 1fr) auto; column-gap: 1rem; row-gap: 0.4rem; text-decoration: none; padding: 0.9rem 1rem; display: grid; align-items: center; }
.protected-overview-link:last-child { border-right: 1px solid var(--fs-line); }
.protected-overview-link.is-resume { background: var(--fs-red); color: #fff; }
.protected-overview-link.is-resume > span { color: #fff; }
.protected-overview-link > span { align-self: end; }
.protected-overview-link strong { border-left: 2px solid var(--fs-red); grid-column: 2; grid-row: 1 / span 2; align-self: stretch; min-width: 4.25rem; padding-left: 0.85rem; align-items: center; justify-content: center; font: 800 var(--protected-label-size)/1 FS Display, Impact, sans-serif; letter-spacing: 0.08em; text-transform: uppercase; display: flex; }
.protected-overview-link small { color: var(--fs-ink); grid-column: 1; font-size: var(--protected-helper-size); line-height: 1.45; }
.protected-overview-link.is-resume small { color: #fff; }
.protected-overview-link.is-resume strong { border-left-color: #ffffffa6; }
.protected-overview-link:is(:hover, :focus-visible) { border-color: var(--fs-red); outline: 2px solid transparent; }
.protected-overview-note { border-left: 3px solid var(--fs-red); margin: 1.25rem 0 0; padding: 0.2rem 0 0.2rem 0.8rem; font: 400 calc(1rem + var(--fs-reading-increment))/1.5 FS Serif, Georgia, serif; }
.protected-overview-footer { border-top: 1px solid var(--fs-line); justify-content: space-between; flex-wrap: wrap; gap: 0.75rem; margin-top: 2rem; padding-top: 1rem; display: flex; }
@keyframes protected-pulse { 0%, 100% { opacity: 0.28; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-0.18rem); } }
@keyframes protected-spin { to { transform: rotate(360deg); } }

@media (width <= 820px) {
  .protected-overview-head { align-items: start; flex-direction: column; gap: 0.8rem; }
  .protected-overview-head > div:last-child { text-align: left; }
  .protected-overview-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .protected-overview-metric:nth-child(2) { border-right: 0; }
  .protected-overview-metric:nth-child(-n+2) { border-bottom: 1px solid var(--fs-line); }
  .protected-overview-links { grid-template-columns: minmax(0, 1fr); }
  .protected-overview-link { min-height: 5.25rem; }
  .protected-overview-link:last-child { border-bottom: 1px solid var(--fs-line); }
}

@media (prefers-reduced-motion: reduce) {
  .protected-loading:before, .protected-activity i { animation: none; }
}

/* Prayer reading and narrow-width contract. This stays with the protected
   ministry rules so the preservation-locked public design remains intact. */
.prayer-layout { min-width: 0; }
.prayer-grid { min-width: 0; }
.prayer-field { min-width: 0; }
.prayer-form { min-width: 0; }
.prayer-scripture { font-size: calc(clamp(1.15rem, 1.8vw, 1.45rem) + var(--fs-reading-increment)); }
.prayer-scripture cite { font-size: var(--protected-meta-size); }
.prayer-field span { font-size: var(--protected-label-size); }
.prayer-field small { font-size: var(--protected-helper-size); }
.prayer-contact-note { font-size: var(--protected-helper-size); }
.prayer-crisis { font-size: var(--protected-helper-size); }

/* Client navigation keeps route context focused for assistive technology without
   leaving a pointer-triggered Safari/PWA focus ring behind. Keyboard focus never
   receives this temporary marker and retains the visible SBG focus treatment. */
[data-route-focus]:focus {
  outline: none;
}

/* iOS standalone PWAs do not expose Safari's native page refresh gesture.
   This single SBG indicator is owned by the guarded mobile runtime. */
.root-pull-refresh {
  --fs-pull-distance: 0px;
  z-index: 79;
  max-width: calc(100vw - 2rem);
  min-height: 42px;
  padding: 0.55rem 0.85rem;
  border: 1px solid var(--fs-line);
  border-left: 4px solid var(--fs-red);
  background: var(--fs-surface);
  color: var(--fs-ink);
  box-shadow: 0 0.8rem 2.2rem var(--fs-shadow);
  font-family: FS Display, Impact, sans-serif;
  font-size: 0.78rem;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  pointer-events: none;
  transform: translate3d(-50%, calc(-100% + var(--fs-pull-distance)), 0);
  transition: opacity 120ms linear, transform 120ms ease-out;
  align-items: center;
  gap: 0.55rem;
  display: flex;
  position: fixed;
  top: max(0.5rem, env(safe-area-inset-top, 0px));
  left: 50%;
}

.root-pull-refresh:not([data-visible]):not([data-refreshing]) { opacity: 0; }
.root-pull-refresh[data-visible],
.root-pull-refresh[data-refreshing] { opacity: 1; }
.root-pull-refresh[data-ready] { border-color: var(--fs-red); }

.root-pull-refresh svg {
  width: 1.1rem;
  height: 1.1rem;
  fill: none;
  stroke: var(--fs-red);
  stroke-linecap: square;
  stroke-linejoin: miter;
  stroke-width: 1.8;
  transform: rotate(calc(var(--fs-pull-distance) * 2));
}

.root-pull-refresh[data-refreshing] svg { animation: root-pull-refresh-spin 650ms linear infinite; }
@keyframes root-pull-refresh-spin { to { transform: rotate(360deg); } }

@media (prefers-reduced-motion: reduce) {
  .root-pull-refresh,
  .root-pull-refresh * {
    animation: none !important;
    transition-duration: 0.01ms !important;
  }
}

/* World Missions owns one public briefing surface across home and /world-missions/. */
body[data-page="world-missions"] .root-page-hero .root-heading strong,
body[data-page="world-missions"] .missions-sources h2 strong,
.home-world-watch h2 strong { color: var(--fs-red); }
.missions-hero .root-page-hero-media img { object-position: 62% center; }
.missions-counts { width:min(100% - 48px,1380px);margin:0 auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-block:1px solid var(--fs-line); }
.missions-counts>div { min-width:0;padding:clamp(22px,3vw,42px);border-right:1px solid var(--fs-line); }
.missions-counts>div:last-child { border-right:0; }
.missions-counts strong,.missions-shared-count strong { display:block;font:800 clamp(2.5rem,5vw,5.7rem)/.82 FS Display, Impact, sans-serif;letter-spacing:-.035em;color:var(--fs-ink); }
.missions-counts span,.missions-shared-count>span { display:block;margin-top:10px;font:800 .78rem/1.2 Inter, system-ui, sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--fs-red); }
.missions-today,.missions-directory,.missions-sources { width:min(100% - 48px,1380px);margin:0 auto;padding:clamp(76px,9vw,132px) 0; }
.missions-today>header,.missions-directory>header { max-width:760px; }
.missions-daily { display:grid;grid-template-columns:minmax(0,1.16fr) minmax(320px,.84fr);margin-top:clamp(34px,5vw,70px);border:1px solid var(--fs-line); }
.missions-daily>article { min-width:0;padding:clamp(26px,4vw,58px);background:var(--fs-surface); }
.missions-daily>article+article { border-left:1px solid var(--fs-line); }
.missions-country-line { display:flex;align-items:flex-start;gap:18px; }
.missions-flag { display:inline-flex;flex:0 0 auto;min-width:46px;min-height:38px;align-items:center;justify-content:center;font:800 1.6rem/1 Inter, system-ui, sans-serif; }
.missions-country-line h3,.missions-people-group h3 { margin:2px 0 0;font:800 clamp(2rem,4vw,4.7rem)/.88 FS Display, Impact, sans-serif;letter-spacing:-.02em;text-transform:uppercase;color:var(--fs-ink); }
.missions-country-line div>p:last-child,.missions-people-country { margin:8px 0 0;font:800 .78rem/1.3 Inter, system-ui, sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--fs-muted); }
.missions-compact-stats { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:28px 0 0;border-block:1px solid var(--fs-line); }
.missions-compact-stats>div { min-width:0;padding:16px 12px 16px 0; }
.missions-compact-stats dt,.missions-nation-stats dt { font:800 .68rem/1.2 Inter, system-ui, sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--fs-red); }
.missions-compact-stats dd,.missions-nation-stats dd { margin:6px 0 0;font:700 clamp(.94rem,1.3vw,1.12rem)/1.25 Inter, system-ui, sans-serif;color:var(--fs-ink);overflow-wrap:anywhere; }
.missions-prayer-point { margin:28px 0;padding:22px 24px;border-left:4px solid var(--fs-red);background:var(--fs-surface-2); }
.missions-prayer-point>p:last-child,.missions-people-group>p:not(.root-kicker,.missions-people-country) { margin:10px 0 0;font:400 clamp(1rem,1.4vw,1.18rem)/1.65 Source Serif 4, Georgia, serif;color:var(--fs-ink); }
.missions-prayer-sources { margin:22px 0 0;padding-top:16px;border-top:1px solid var(--fs-line);font:600 .76rem/1.6 Inter,system-ui,sans-serif;color:var(--fs-muted); }
.missions-prayer-sources a { color:var(--fs-ink);text-decoration-thickness:1px;text-underline-offset:3px; }
.missions-daily-actions,.missions-nation-actions { display:flex;align-items:center;flex-wrap:wrap;gap:10px; }
.missions-pray { gap:9px; }
.missions-pray svg { width:18px;height:18px;fill:currentColor; }
.missions-pray b { padding-left:8px;border-left:1px solid currentColor;font:inherit; }
.missions-pray.is-prayed { background:var(--fs-ink);border-color:var(--fs-ink);color:var(--fs-surface); }
.missions-pray:disabled { cursor:wait;opacity:.7; }
.missions-people-group { position:relative;background:#050709!important;color:white; }
.missions-people-group.has-visual { padding:0; }
.missions-people-visual { position:relative;display:block;min-height:clamp(310px,38vw,560px);overflow:hidden;background:#050709;color:white; }
.missions-people-visual::after { content:"";position:absolute;inset:0;background:linear-gradient(180deg,#0507090f 18%,#050709d9 100%);pointer-events:none; }
.missions-people-visual img { width:100%;height:100%;position:absolute;inset:0;object-fit:cover;object-position:center 30%;filter:saturate(.82) contrast(1.04); }
.missions-people-source { position:absolute;z-index:1;inset:20px auto auto 20px;padding:8px 10px;border-left:4px solid var(--fs-red);background:#050709d9;color:white;font:800 .68rem/1.2 Inter,system-ui,sans-serif;letter-spacing:.11em;text-transform:uppercase; }
.missions-people-identity { position:absolute;z-index:1;inset:auto 24px 24px;display:block; }
.missions-people-identity small,.missions-people-identity strong { display:block;color:white; }
.missions-people-identity small { margin-bottom:8px;font:800 .72rem/1.2 Inter,system-ui,sans-serif;letter-spacing:.13em;text-transform:uppercase; }
.missions-people-identity strong { max-width:92%;font:800 clamp(2.5rem,5vw,5.2rem)/.82 FS Display,Impact,sans-serif;letter-spacing:-.02em;text-transform:uppercase; }
.missions-people-copy { padding:clamp(24px,4vw,48px); }
.missions-people-group::before { content:"";position:absolute;inset:18px 18px auto auto;width:48px;height:48px;border:1px solid #ffffff52;border-radius:50%;background:radial-gradient(circle,transparent 25%,#ffffff24 27% 31%,transparent 33%); }
.missions-people-group :is(h3,p,dt,dd) { color:white; }
.missions-people-group .root-kicker,.missions-people-group .missions-compact-stats dt { color:var(--fs-red); }
.missions-people-group .missions-compact-stats { grid-template-columns:repeat(2,minmax(0,1fr));border-color:#ffffff3d; }
.missions-people-group .root-text-link { color:white;border-color:var(--fs-red); }
.missions-shared-count { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 30px;align-items:end;margin-top:18px;padding:24px clamp(24px,4vw,48px);border:1px solid var(--fs-line); }
.missions-shared-count>span { margin:0; }
.missions-shared-count strong { grid-row:span 2;color:var(--fs-red); }
.missions-shared-count p { margin:0;max-width:720px;color:var(--fs-muted);font-size:.85rem; }
.missions-directory { border-top:1px solid var(--fs-line); }
.missions-directory-tools { display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:16px 24px;align-items:end;margin:44px 0 24px;padding:clamp(20px,3vw,34px);background:var(--fs-ink);color:white; }
.missions-directory-tools label span { display:block;margin-bottom:9px;font:800 .72rem/1.2 Inter, system-ui, sans-serif;letter-spacing:.13em;text-transform:uppercase; }
.missions-directory-tools input { width:100%;min-width:0;padding:13px 14px;border:1px solid #ffffff66;border-radius:0;background:white;color:var(--fs-ink);font:600 1rem/1.2 Inter, system-ui, sans-serif; }
.missions-directory-tools input:focus { outline:3px solid var(--fs-red);outline-offset:2px; }
.missions-directory-tools>p { grid-column:1/-1;margin:0;color:#ffffffb8;font:700 .78rem/1.2 Inter, system-ui, sans-serif;letter-spacing:.08em;text-transform:uppercase; }
.missions-filters { display:flex;flex-wrap:wrap;gap:8px; }
.missions-filters button { min-height:42px;padding:8px 13px;border:1px solid #ffffff73;border-radius:0;background:transparent;color:white;font:800 .72rem/1.1 Inter, system-ui, sans-serif;letter-spacing:.08em;text-transform:uppercase;cursor:pointer; }
.missions-filters button[aria-pressed="true"] { border-color:var(--fs-red);background:var(--fs-red); }
.missions-cards { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px; }
.missions-nation { min-width:0;border:1px solid var(--fs-line);background:var(--fs-surface);scroll-margin-top:104px; }
.missions-nation-summary { width:100%;min-width:0;display:grid;grid-template-columns:54px minmax(0,1fr) 32px;gap:12px;align-items:center;padding:18px;border:0;background:transparent;text-align:left;cursor:pointer;color:var(--fs-ink); }
.missions-nation-summary>span:nth-child(2) { min-width:0; }
.missions-nation-summary small,.missions-nation-summary strong,.missions-nation-summary em { display:block;overflow-wrap:anywhere; }
.missions-nation-summary small { margin-bottom:4px;color:var(--fs-red);font:800 .66rem/1.2 Inter, system-ui, sans-serif;letter-spacing:.11em;text-transform:uppercase; }
.missions-nation-summary strong { font:800 clamp(1.35rem,2.2vw,2rem)/.95 FS Display, Impact, sans-serif;text-transform:uppercase; }
.missions-nation-summary em { margin-top:7px;color:var(--fs-muted);font:700 .72rem/1.25 Inter, system-ui, sans-serif;letter-spacing:.05em;text-transform:uppercase;font-style:normal; }
.missions-open-mark { font:400 2rem/1 Inter, system-ui, sans-serif;color:var(--fs-red);transition:transform .18s ease; }
.missions-nation-summary[aria-expanded="true"] .missions-open-mark { transform:rotate(45deg); }
.missions-nation-summary:focus-visible { outline:3px solid var(--fs-red);outline-offset:-3px; }
.missions-nation-panel { padding:0 24px 28px;border-top:1px solid var(--fs-line); }
.missions-nation-stats { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0 0 26px; }
.missions-nation-stats>div { min-width:0;padding:18px 12px 18px 0;border-bottom:1px solid var(--fs-line); }
.missions-dossier-copy { margin:26px 0; }
.missions-dossier-copy>p:last-child,.missions-dossier-copy li { font:400 1rem/1.65 Source Serif 4, Georgia, serif;color:var(--fs-ink); }
.missions-dossier-copy ol { margin:12px 0 0;padding-left:22px; }
.missions-dossier-copy li+li { margin-top:12px; }
.missions-religions { margin:26px 0; }
.missions-religions>div { display:flex;justify-content:space-between;gap:18px;padding:9px 0;border-bottom:1px solid var(--fs-line);font:700 .84rem/1.3 Inter, system-ui, sans-serif; }
.missions-sources { display:grid;grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);gap:clamp(34px,8vw,110px);border-top:1px solid var(--fs-line); }
.missions-sources h2 { margin:8px 0 0;font:800 clamp(2.4rem,5vw,5.4rem)/.87 FS Display, Impact, sans-serif;text-transform:uppercase; }
.missions-sources>div:last-child>p { margin:0 0 20px;font:400 clamp(1rem,1.5vw,1.2rem)/1.65 Source Serif 4, Georgia, serif; }
.missions-sources nav { display:flex;flex-wrap:wrap;gap:10px; }
.missions-sources nav a { padding:9px 12px;border:1px solid var(--fs-line);color:var(--fs-ink);font:800 .72rem/1.2 Inter, system-ui, sans-serif;letter-spacing:.1em;text-transform:uppercase; }
.home-world-watch { width:min(100% - 48px,1380px);margin:clamp(36px,6vw,90px) auto;display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);background:var(--fs-ink);color:white; }
.home-world-watch-copy { padding:clamp(34px,6vw,86px); }
.home-world-watch h2 { margin:8px 0 22px;color:white;font:800 clamp(2.5rem,5vw,5.8rem)/.86 FS Display, Impact, sans-serif;text-transform:uppercase; }
.home-world-watch-copy>p:not(.root-kicker) { max-width:620px;font:400 clamp(1rem,1.6vw,1.22rem)/1.65 Source Serif 4, Georgia, serif;color:#ffffffdb; }
.home-world-watch dl { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:30px 0;border-block:1px solid #ffffff3d; }
.home-world-watch dl div { padding:18px 14px 18px 0; }
.home-world-watch dt { font:800 .68rem/1.2 Inter, system-ui, sans-serif;letter-spacing:.11em;text-transform:uppercase;color:var(--fs-red); }
.home-world-watch dd { margin:6px 0 0;font:800 2.6rem/.9 FS Display, Impact, sans-serif; }
.home-world-watch figure { position:relative;min-height:520px;margin:0;overflow:hidden; }
.home-world-watch figure img { width:100%;height:100%;object-fit:cover;object-position:65% center;filter:saturate(.7) contrast(1.05); }
.home-world-watch-caption { position:absolute;inset:auto 22px 22px auto;padding:13px 16px;border-left:3px solid var(--fs-red);background:#050709d4;color:white; }
.home-world-watch-caption :is(strong,span) { display:block; }
.home-world-watch-caption strong { font:800 1rem/1 FS Display, Impact, sans-serif;letter-spacing:.08em;text-transform:uppercase; }
.home-world-watch-caption span { margin-top:4px;font:700 .66rem/1.2 Inter, system-ui, sans-serif;letter-spacing:.08em;text-transform:uppercase; }
@media (max-width:900px) {
  .missions-counts { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .missions-counts>div:nth-child(2) { border-right:0; }
  .missions-counts>div:nth-child(-n+2) { border-bottom:1px solid var(--fs-line); }
  .missions-daily,.home-world-watch { grid-template-columns:1fr; }
  .missions-daily>article+article { border-left:0;border-top:1px solid var(--fs-line); }
  .home-world-watch figure { min-height:420px; }
  .missions-cards { grid-template-columns:1fr; }
  .missions-directory-tools { grid-template-columns:1fr; }
}
@media (max-width:600px) {
  .missions-counts,.missions-today,.missions-directory,.missions-sources,.home-world-watch { width:min(100% - 28px,1380px); }
  .missions-counts>div { padding:20px 15px; }
  .missions-counts strong { font-size:clamp(2.25rem,13vw,4rem); }
  .missions-counts span { font-size:.65rem; }
  .missions-today,.missions-directory,.missions-sources { padding:64px 0; }
  .missions-daily>article { padding:24px 18px; }
  .missions-daily>article.has-visual { padding:0; }
  .missions-people-visual { min-height:430px; }
  .missions-people-source { inset:16px auto auto 16px;max-width:calc(100% - 32px); }
  .missions-people-identity { inset:auto 18px 18px; }
  .missions-people-copy { padding:24px 18px; }
  .missions-country-line { gap:8px; }
  .missions-flag { min-width:38px;font-size:1.3rem; }
  .missions-compact-stats,.missions-nation-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .missions-shared-count { grid-template-columns:1fr; }
  .missions-shared-count strong { grid-row:auto; }
  .missions-directory-tools { padding:18px; }
  .missions-filters button { flex:1 1 auto; }
  .missions-nation-summary { grid-template-columns:42px minmax(0,1fr) 24px;padding:15px 12px;gap:8px; }
  .missions-nation-panel { padding:0 16px 22px; }
  .missions-nation-actions .root-button { width:100%;justify-content:center; }
  .missions-sources { grid-template-columns:1fr; }
  .home-world-watch { margin-block:24px 64px; }
  .home-world-watch-copy { padding:32px 22px; }
  .home-world-watch figure { min-height:340px; }
}

/* Public formation libraries: Daily Devotions and Theology Explorer. */
body[data-page="daily-devotions"] .root-page-hero .root-heading strong,
body[data-page="theology-explorer"] .root-page-hero .root-heading strong {
  color: var(--fs-red);
}

.devotions-current,
.devotions-archive,
.theology-library {
  width: min(100% - 56px, 1380px);
  margin-inline: auto;
  padding: clamp(76px, 9vw, 132px) 0;
}

.devotions-current,
.theology-library {
  border-top: 1px solid var(--fs-line);
}

.devotions-current > header,
.devotions-archive > header,
.theology-library > header {
  max-width: 820px;
  margin-bottom: clamp(34px, 5vw, 64px);
}

.devotion-feature {
  border: 1px solid var(--fs-line);
  border-top: 5px solid var(--fs-red);
  background: var(--fs-surface);
  scroll-margin-top: 110px;
}

.devotion-feature > header {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: start;
  padding: clamp(24px, 4vw, 52px) clamp(24px, 5vw, 68px) 0;
}

.devotion-feature > header p { margin: 0; }
.devotion-feature > header > span {
  color: var(--fs-muted);
  font: 800 .72rem/1.2 Inter, system-ui, sans-serif;
  letter-spacing: .12em;
}

.devotion-theme {
  margin-top: 9px !important;
  color: var(--fs-red);
  font: 800 .8rem/1.2 Inter, system-ui, sans-serif;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.devotion-feature > h2 {
  max-width: 980px;
  margin: clamp(24px, 4vw, 44px) clamp(24px, 5vw, 68px);
  font: 800 clamp(3rem, 8vw, 7.6rem)/.84 FS Display, Impact, sans-serif;
  letter-spacing: -.02em;
  text-transform: uppercase;
}

.devotion-feature > blockquote {
  margin: 0;
  padding: clamp(26px, 4vw, 48px) clamp(24px, 5vw, 68px);
  border: 0;
  background: var(--fs-ink);
  color: var(--fs-bg);
}

.devotion-feature > blockquote p {
  max-width: 1040px;
  margin: 0;
  font: 400 clamp(1.3rem, 2.5vw, 2.1rem)/1.45 Source Serif 4, Georgia, serif;
}

.devotion-reading {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding: 0 clamp(24px, 5vw, 68px);
}

.devotion-reading > section {
  min-width: 0;
  padding: clamp(30px, 4vw, 52px) clamp(20px, 4vw, 52px) clamp(30px, 4vw, 52px) 0;
  border-bottom: 1px solid var(--fs-line);
}

.devotion-reading > section:nth-child(2) { padding-left: clamp(20px, 4vw, 52px); border-left: 1px solid var(--fs-line); }
.devotion-reading > .devotion-prayer { grid-column: 1 / -1; padding-right: 0; }
.devotion-reading > section > p:last-child,
.theology-article-body { margin: 12px 0 0; font: 400 1em/1.75 Source Serif 4, Georgia, serif; }

.devotion-feature > footer,
.theology-article > footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 14px 24px;
  padding: 22px clamp(24px, 5vw, 68px) 28px;
}

.devotion-day-nav,
.devotion-share,
.theology-article > footer { display: flex; flex-wrap: wrap; gap: 10px; }
.devotion-feature button,
.theology-article > footer button {
  min-height: 42px;
  padding: 9px 14px;
  border: 1px solid var(--fs-line);
  border-radius: 0;
  background: transparent;
  color: var(--fs-ink);
  font: 800 .72rem/1.2 Inter, system-ui, sans-serif;
  letter-spacing: .09em;
  text-transform: uppercase;
  cursor: pointer;
}

.devotion-feature button:disabled { opacity: .4; cursor: default; }
.devotion-share button:last-child,
.theology-article > footer button:last-child { display: inline-flex; gap: 8px; align-items: center; border-color: var(--fs-red); background: var(--fs-red); color: white; }
.devotion-share svg,
.theology-article > footer svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; }

.devotion-search,
.theology-search {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto;
  gap: 10px 24px;
  align-items: end;
  margin-bottom: 24px;
  padding: clamp(20px, 3vw, 34px);
  background: var(--fs-ink);
  color: var(--fs-bg);
}

.devotion-search label,
.theology-search label { grid-column: 1 / -1; font: 800 .72rem/1.2 Inter, system-ui, sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.devotion-search input,
.theology-search input { width: 100%; min-width: 0; padding: 13px 14px; border: 1px solid #ffffff66; border-radius: 0; background: var(--fs-bg); color: var(--fs-ink); font: 600 1em/1.2 Inter, system-ui, sans-serif; }
.devotion-search p,
.theology-search p { margin: 0; font: 800 .72rem/1.3 Inter, system-ui, sans-serif; letter-spacing: .08em; text-transform: uppercase; }

.devotion-archive-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.devotion-archive-card {
  min-width: 0;
  min-height: 158px;
  padding: 20px;
  border: 1px solid var(--fs-line);
  border-radius: 0;
  background: var(--fs-surface);
  color: var(--fs-ink);
  text-align: left;
  cursor: pointer;
}
.devotion-archive-card[aria-current="true"] { border-color: var(--fs-red); border-left-width: 5px; }
.devotion-archive-card small,
.devotion-archive-card strong,
.devotion-archive-card span { display: block; overflow-wrap: anywhere; }
.devotion-archive-card small { color: var(--fs-muted); font: 700 .68rem/1.2 Inter, system-ui, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.devotion-archive-card strong { margin: 16px 0 10px; font: 800 clamp(1.35rem, 2.2vw, 2rem)/.95 FS Display, Impact, sans-serif; text-transform: uppercase; }
.devotion-archive-card span { color: var(--fs-red); font: 800 .68rem/1.2 Inter, system-ui, sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.devotion-more { margin-top: 24px; }

.theology-workspace {
  display: grid;
  grid-template-columns: minmax(190px, .48fr) minmax(210px, .62fr) minmax(0, 1.9fr);
  align-items: start;
  border: 1px solid var(--fs-line);
  background: var(--fs-surface);
}

.theology-categories,
.theology-sections { min-width: 0; display: grid; align-content: start; }
.theology-categories { background: var(--fs-ink); }
.theology-categories button,
.theology-sections button {
  min-width: 0;
  padding: 18px;
  border: 0;
  border-bottom: 1px solid var(--fs-line);
  border-radius: 0;
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
}
.theology-categories button { color: var(--fs-bg); }
.theology-categories button[aria-pressed="true"] { border-left: 5px solid var(--fs-red); background: #ffffff0d; }
.theology-categories span,
.theology-categories strong,
.theology-categories small,
.theology-sections span,
.theology-sections small { display: block; overflow-wrap: anywhere; }
.theology-categories span { color: var(--fs-red); font: 800 .68rem/1 Inter, system-ui, sans-serif; }
.theology-categories strong { margin: 9px 0 5px; font: 800 1.15rem/1 FS Display, Impact, sans-serif; text-transform: uppercase; }
.theology-categories small,
.theology-sections small { opacity: .7; font: 700 .65rem/1.3 Inter, system-ui, sans-serif; letter-spacing: .07em; text-transform: uppercase; }
.theology-sections { border-right: 1px solid var(--fs-line); }
.theology-sections button[aria-current="true"] { color: var(--fs-red); border-left: 4px solid var(--fs-red); }
.theology-sections span { margin-bottom: 7px; font: 800 1rem/1.05 FS Display, Impact, sans-serif; text-transform: uppercase; }
.theology-stage { min-width: 0; }
.theology-article { scroll-margin-top: 110px; }
.theology-article > header { padding: clamp(28px, 5vw, 68px) clamp(24px, 5vw, 68px) 24px; }
.theology-article > header h2 { margin: 12px 0 18px; font: 800 clamp(3rem, 6vw, 6.4rem)/.86 FS Display, Impact, sans-serif; text-transform: uppercase; }
.theology-article > header > p:last-child { margin: 0; color: var(--fs-muted); font: 700 .85rem/1.45 Inter, system-ui, sans-serif; }
.theology-article > blockquote { margin: 0; padding: 26px clamp(24px, 5vw, 68px); border: 0; border-left: 5px solid var(--fs-red); background: var(--fs-ink); color: var(--fs-bg); font: 400 1.1em/1.6 Source Serif 4, Georgia, serif; }
.theology-article-body { padding: clamp(30px, 5vw, 68px); }
.theology-article-body blockquote { margin: 28px 0 0; padding: 20px 24px; border-left: 4px solid var(--fs-red); background: var(--fs-bg); }
.theology-article > footer { justify-content: flex-start; border-top: 1px solid var(--fs-line); }
.theology-article > footer .root-button { min-height: 42px; padding: 9px 14px; }

@media (max-width: 960px) {
  .devotion-archive-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .theology-workspace { grid-template-columns: 1fr 1fr; }
  .theology-stage { grid-column: 1 / -1; border-top: 1px solid var(--fs-line); }
}

@media (max-width: 700px) {
  .devotions-current,
  .devotions-archive,
  .theology-library { width: min(100% - 28px, 1380px); padding: 64px 0; }
  .devotion-feature > header { padding: 22px 18px 0; }
  .devotion-feature > h2 { margin: 24px 18px; }
  .devotion-feature > blockquote { padding: 26px 18px; }
  .devotion-reading { grid-template-columns: 1fr; padding: 0 18px; }
  .devotion-reading > section,
  .devotion-reading > section:nth-child(2) { padding: 28px 0; border-left: 0; }
  .devotion-feature > footer { padding: 20px 18px 24px; }
  .devotion-day-nav,
  .devotion-share { width: 100%; }
  .devotion-day-nav button,
  .devotion-share button { flex: 1 1 auto; }
  .devotion-search,
  .theology-search { grid-template-columns: 1fr; padding: 18px; }
  .devotion-search label,
  .theology-search label { grid-column: auto; }
  .devotion-archive-grid { grid-template-columns: 1fr; }
  .devotion-archive-card { min-height: 132px; }
  .theology-workspace { display: block; }
  .theology-categories { display: flex; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: thin; }
  .theology-categories button { flex: 0 0 min(72vw, 250px); border-right: 1px solid #ffffff2f; }
  .theology-sections { border-right: 0; }
  .theology-article > header { padding: 32px 18px 22px; }
  .theology-article > blockquote { padding: 24px 18px; }
  .theology-article-body { padding: 30px 18px; }
  .theology-article > footer { padding: 20px 18px 24px; }
  .theology-article > footer :is(a,button) { flex: 1 1 calc(50% - 10px); justify-content: center; }
}

/* Invitation is one SBG-owned Gospel presentation, rebuilt from the donor
 * content without importing its navigation, palette, icons, or runtime. */
body[data-page="invitation"] .invitation-hero .root-heading strong,
.invitation-formation h2 strong { color: var(--fs-red); }
.invitation-hero .root-page-hero-media img { object-position: 48% 48%; }
.invitation-hero .root-actions .root-text-link { display: inline-flex; align-items: center; gap: 7px; margin-top: 0; padding-bottom: 3px; border-bottom: 2px solid var(--fs-red); color: white; font: 800 .78rem/1.3 Inter, system-ui, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.invitation-hero .root-actions .root-text-link svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.invitation-hero [data-invitation-share-status] { min-height: 1.2em; margin: 12px 0 0; color: white; font: 700 .72rem/1.4 Inter, system-ui, sans-serif; }
.invitation-opening,
.invitation-story,
.invitation-formation,
.invitation-library,
.invitation-response,
.invitation-closing { width: min(100% - 48px, 1380px); margin-inline: auto; }
.invitation-opening { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(310px, .65fr); margin-block: clamp(70px, 9vw, 132px); border: 1px solid var(--fs-line); background: var(--fs-surface); }
.invitation-opening > article { min-width: 0; padding: clamp(30px, 6vw, 86px); }
.invitation-opening h2,
.invitation-story h2,
.invitation-formation h2,
.invitation-response h2,
.invitation-closing h2 { margin: 10px 0 22px; color: var(--fs-ink); font: 800 clamp(2.4rem, 5vw, 5.5rem)/.88 FS Display, Impact, sans-serif; text-transform: uppercase; letter-spacing: -.025em; overflow-wrap: anywhere; }
.invitation-opening article > p:not(.root-kicker),
.invitation-story header > p:not(.root-kicker),
.invitation-formation header > p:not(.root-kicker),
.invitation-response header > p:not(.root-kicker),
.invitation-closing > div:first-child > p:not(.root-kicker) { max-width: 800px; font: 400 1em/1.72 "Source Serif 4", Georgia, serif; color: var(--fs-ink); }
.invitation-opening .invitation-lead { font-size: 1.15em; font-weight: 700; }
.invitation-opening > blockquote { min-width: 0; margin: 0; padding: clamp(30px, 5vw, 68px); border: 0; border-left: 5px solid var(--fs-red); background: var(--fs-ink); color: var(--fs-bg); display: flex; flex-direction: column; justify-content: center; }
.invitation-opening blockquote p { margin: 0; color: var(--fs-bg); font: 400 clamp(1.8rem, 3.4vw, 3.6rem)/1.12 "Source Serif 4", Georgia, serif; }
.invitation-opening blockquote cite { margin-top: 24px; color: var(--fs-red); font: 800 .74rem/1.3 Inter, system-ui, sans-serif; font-style: normal; letter-spacing: .12em; text-transform: uppercase; }
.invitation-opening blockquote span { margin-top: 34px; padding-top: 24px; border-top: 1px solid #ffffff42; color: var(--fs-bg); font: 400 1em/1.65 "Source Serif 4", Georgia, serif; }
.invitation-scripture,
.invitation-story-grid a,
.invitation-reference-list a { display: inline-block; margin-top: 10px; padding-bottom: 3px; border-bottom: 2px solid var(--fs-red); color: var(--fs-ink); font: 800 .78rem/1.3 Inter, system-ui, sans-serif; letter-spacing: .06em; text-transform: uppercase; }

.invitation-story { padding: clamp(42px, 7vw, 90px); background: var(--fs-ink); color: var(--fs-bg); }
.invitation-story h2,
.invitation-story header > p:not(.root-kicker),
.invitation-story-grid :is(h3,p) { color: var(--fs-bg); }
.invitation-story > header { max-width: 800px; }
.invitation-story-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 42px; border-top: 1px solid #ffffff3d; }
.invitation-story-grid article { min-width: 0; padding: 28px 24px 4px 0; }
.invitation-story-grid article + article { padding-left: 24px; border-left: 1px solid #ffffff3d; }
.invitation-story-grid b { display: block; margin-bottom: 26px; color: var(--fs-red); font: 800 .78rem/1 Inter, system-ui, sans-serif; letter-spacing: .12em; }
.invitation-story-grid h3 { margin: 0 0 14px; font: 800 clamp(1.35rem, 2.2vw, 2rem)/.95 FS Display, Impact, sans-serif; text-transform: uppercase; }
.invitation-story-grid p { font: 400 1em/1.65 "Source Serif 4", Georgia, serif; }
.invitation-story-grid a { color: var(--fs-bg); }

.invitation-formation { margin-block: clamp(70px, 9vw, 132px); border: 1px solid var(--fs-line); }
.invitation-formation > header { padding: clamp(32px, 6vw, 82px); }
.invitation-formation > header > p:not(.root-kicker) { max-width: 820px; }
.invitation-formation > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--fs-line); }
.invitation-formation article { min-width: 0; padding: clamp(28px, 4vw, 54px); background: var(--fs-surface); }
.invitation-formation article + article { border-left: 1px solid var(--fs-line); }
.invitation-formation article:last-child { background: var(--fs-ink); color: var(--fs-bg); }
.invitation-formation article > span,
.invitation-response article > span { display: block; margin-bottom: 26px; color: var(--fs-red); font: 800 .72rem/1.2 Inter, system-ui, sans-serif; letter-spacing: .14em; text-transform: uppercase; }
.invitation-formation h3,
.invitation-response h3 { margin: 0 0 14px; color: var(--fs-ink); font: 800 clamp(1.35rem, 2.4vw, 2.1rem)/.98 FS Display, Impact, sans-serif; text-transform: uppercase; }
.invitation-formation article > p,
.invitation-response article > p { color: var(--fs-ink); font: 400 1em/1.68 "Source Serif 4", Georgia, serif; }
.invitation-formation article:last-child :is(h3,p,.invitation-scripture) { color: var(--fs-bg); }

.invitation-library { padding-block: clamp(72px, 9vw, 132px); border-top: 1px solid var(--fs-line); }
.invitation-library > header { max-width: 820px; margin-bottom: clamp(32px, 5vw, 66px); }
.invitation-workspace { display: grid; grid-template-columns: minmax(230px, .58fr) minmax(0, 1.42fr); border: 1px solid var(--fs-line); background: var(--fs-surface); }
.invitation-workspace > nav { min-width: 0; background: var(--fs-ink); }
.invitation-workspace > nav button { width: 100%; min-width: 0; display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 3px 12px; padding: 20px; border: 0; border-bottom: 1px solid #ffffff2f; border-radius: 0; background: transparent; color: var(--fs-bg); text-align: left; cursor: pointer; }
.invitation-workspace > nav button[aria-pressed="true"] { border-left: 5px solid var(--fs-red); background: #ffffff0d; }
.invitation-workspace > nav button small { grid-row: 1 / span 2; color: var(--fs-red); font: 800 .68rem/1.2 Inter, system-ui, sans-serif; }
.invitation-workspace > nav button strong { min-width: 0; font: 800 1.12rem/1 FS Display, Impact, sans-serif; text-transform: uppercase; overflow-wrap: anywhere; }
.invitation-workspace > nav button span { min-width: 0; color: #ffffffad; font: 700 .68rem/1.35 Inter, system-ui, sans-serif; letter-spacing: .04em; text-transform: uppercase; overflow-wrap: anywhere; }
.invitation-workspace > article { min-width: 0; padding: clamp(28px, 5vw, 66px); }
.invitation-workspace > article > header { padding-bottom: 28px; border-bottom: 1px solid var(--fs-line); }
.invitation-workspace > article h3 { margin: 10px 0 14px; color: var(--fs-ink); font: 800 clamp(2.2rem, 4.4vw, 4.8rem)/.86 FS Display, Impact, sans-serif; text-transform: uppercase; overflow-wrap: anywhere; }
.invitation-workspace > article h3 strong { color: var(--fs-red); font-weight: inherit; }
.invitation-workspace > article > header > p:not(.root-kicker),
.invitation-workspace > article section p,
.invitation-workspace > article li,
.invitation-workspace > article blockquote p { color: var(--fs-ink); font: 400 1em/1.7 "Source Serif 4", Georgia, serif; }
.invitation-workspace > article section { padding-top: 28px; }
.invitation-workspace > article h4 { margin: 0 0 10px; color: var(--fs-red); font: 800 .72rem/1.2 Inter, system-ui, sans-serif; letter-spacing: .13em; text-transform: uppercase; }
.invitation-workspace > article ol { margin: 0; padding-left: 22px; }
.invitation-workspace > article li + li { margin-top: 10px; }
.invitation-reference-list { display: flex; flex-wrap: wrap; gap: 10px 18px; }
.invitation-workspace dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin: 24px 0 0; }
.invitation-workspace dl div { min-width: 0; padding-top: 15px; border-top: 1px solid var(--fs-line); }
.invitation-workspace dt { color: var(--fs-red); font: 800 .68rem/1.2 Inter, system-ui, sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.invitation-workspace dd { margin: 7px 0 0; color: var(--fs-ink); font: 700 1em/1.4 Inter, system-ui, sans-serif; overflow-wrap: anywhere; }
.invitation-workspace dd a { color: inherit; border-bottom: 2px solid var(--fs-red); }
.invitation-workspace blockquote { margin: 28px 0 0; padding: 22px 24px; border: 0; border-left: 4px solid var(--fs-red); background: var(--fs-surface-2); }

.invitation-call-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.invitation-call-grid article { min-width: 0; padding: clamp(24px, 3vw, 40px); border: 1px solid var(--fs-line); background: var(--fs-surface); }
.invitation-call-grid h3 { margin: 10px 0 20px; font: 800 clamp(1.7rem, 2.7vw, 2.8rem)/.9 FS Display, Impact, sans-serif; text-transform: uppercase; overflow-wrap: anywhere; }
.invitation-call-grid blockquote { margin: 0 0 28px; padding: 18px 20px; border: 0; border-left: 4px solid var(--fs-red); background: var(--fs-ink); color: var(--fs-bg); font: 400 1.08em/1.6 "Source Serif 4", Georgia, serif; }
.invitation-call-grid h4 { margin: 24px 0 7px; color: var(--fs-red); font: 800 .68rem/1.2 Inter, system-ui, sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.invitation-call-grid article > p:not(.root-kicker) { font: 400 1em/1.68 "Source Serif 4", Georgia, serif; color: var(--fs-ink); }

.invitation-response { padding: clamp(42px, 7vw, 90px); background: var(--fs-surface-2); }
.invitation-response > header { max-width: 820px; }
.invitation-response > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 42px; border-top: 1px solid var(--fs-line); }
.invitation-response article { min-width: 0; padding: 28px 26px 0 0; }
.invitation-response article + article { padding-left: 26px; border-left: 1px solid var(--fs-line); }
.invitation-closing { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(240px, .55fr); gap: clamp(30px, 7vw, 92px); align-items: end; margin-block: clamp(70px, 9vw, 132px); padding: clamp(34px, 6vw, 86px); background: var(--fs-red); color: white; }
.invitation-closing :is(h2,p,.root-kicker) { color: white; }
.invitation-closing-actions { min-width: 0; display: grid; gap: 10px; }
.invitation-closing-actions .root-button { width: 100%; justify-content: center; }
.invitation-closing-actions .root-button--primary { background: var(--fs-ink); border-color: var(--fs-ink); }
.invitation-closing-actions .root-button--ghost { border-color: white; color: white; }
.invitation-closing-actions svg { width: 18px; height: 18px; margin-right: 8px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.invitation-closing-actions > p { min-height: 1.2em; margin: 3px 0 0; font: 700 .72rem/1.4 Inter, system-ui, sans-serif; }

@media (max-width: 960px) {
  .invitation-opening { grid-template-columns: 1fr; }
  .invitation-opening > blockquote { border-left: 0; border-top: 5px solid var(--fs-red); }
  .invitation-story-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .invitation-story-grid article:nth-child(3) { padding-left: 0; border-left: 0; border-top: 1px solid #ffffff3d; }
  .invitation-story-grid article:nth-child(4) { border-top: 1px solid #ffffff3d; }
  .invitation-call-grid { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
  .invitation-opening,
  .invitation-story,
  .invitation-formation,
  .invitation-library,
  .invitation-response,
  .invitation-closing { width: min(100% - 28px, 1380px); }
  .invitation-opening,
  .invitation-formation,
  .invitation-closing { margin-block: 64px; }
  .invitation-story,
  .invitation-response { padding: 42px 18px; }
  .invitation-story-grid,
  .invitation-formation > div,
  .invitation-response > div { grid-template-columns: 1fr; }
  .invitation-story-grid article,
  .invitation-story-grid article + article,
  .invitation-story-grid article:nth-child(3) { padding: 24px 0; border-left: 0; border-top: 1px solid #ffffff3d; }
  .invitation-formation article + article,
  .invitation-response article + article { border-left: 0; border-top: 1px solid var(--fs-line); }
  .invitation-response article,
  .invitation-response article + article { padding: 26px 0; }
  .invitation-library { padding-block: 64px; }
  .invitation-workspace { display: block; }
  .invitation-workspace > nav { display: flex; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: thin; }
  .invitation-workspace > nav button { flex: 0 0 min(76vw, 280px); border-right: 1px solid #ffffff2f; }
  .invitation-workspace > article { padding: 32px 18px; }
  .invitation-workspace dl { grid-template-columns: 1fr; }
  .invitation-call-grid article { padding: 24px 18px; }
  .invitation-closing { grid-template-columns: 1fr; padding: 42px 18px; }
}

/* Cinematic public-module heroes extend the approved homepage image language:
 * one page-specific environmental narrative, faded into the dark hero field. */
.root-page-hero.root-page-hero--cinematic {
  grid-template-columns: minmax(0, 1fr);
  align-items: center;
  min-height: min(760px, calc(100svh - 78px));
}

.root-page-hero.root-page-hero--cinematic::before {
  content: "";
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(90deg, #050608 0 25%, #050608ed 43%, #05060869 69%, #0506081c 100%),
    linear-gradient(0deg, #050608c9 0, transparent 44%);
  position: absolute;
  inset: 0;
}

.root-page-hero--cinematic .root-page-hero-copy {
  z-index: 3;
  max-width: 54rem;
}

.root-page-hero--cinematic .root-page-hero-media {
  z-index: 0;
  width: min(72vw, 1240px);
  height: 100%;
  margin: 0;
  position: absolute;
  inset: 0 0 0 auto;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 34% 100%);
  mask-image: linear-gradient(90deg, transparent 0, #000 34% 100%);
}

.root-page-hero--cinematic .root-page-hero-media::after {
  content: "";
  pointer-events: none;
  background: repeating-linear-gradient(0deg, transparent 0 3px, #ffffff05 3px 4px);
  position: absolute;
  inset: 0;
}

.root-page-hero--cinematic .root-page-hero-media img {
  aspect-ratio: auto;
  object-fit: cover;
  object-position: 61% center;
  filter: grayscale(.78) saturate(.68) contrast(1.2) brightness(.7);
  width: 100%;
  height: 100%;
  -webkit-mask-image: none;
  mask-image: none;
}

.root-page-hero--cinematic .root-page-hero-media figcaption {
  z-index: 2;
  right: clamp(2rem, 5vw, 5rem);
  bottom: clamp(2rem, 5vw, 4rem);
  left: auto;
  text-align: right;
}

body[data-page="biblical-counseling"] .root-page-hero--cinematic .root-page-hero-media img { object-position: 69% center; }
body[data-page="invitation"] .root-page-hero--cinematic .root-page-hero-media img { object-position: 72% center; }
body[data-page="daily-devotions"] .root-page-hero--cinematic .root-page-hero-media img { object-position: 70% center; }
body[data-page="theology-explorer"] .root-page-hero--cinematic .root-page-hero-media img { object-position: 72% center; }
body[data-page="prayer"] .root-page-hero--cinematic .root-page-hero-media img { object-position: 72% center; }

/* Invitation closing panel: preserve white editorial copy on the red field.
 * This selector intentionally follows the shared long-form ink rule above. */
.invitation-closing > div:first-child > p:not(.root-kicker),
.invitation-closing > div:first-child > p:not(.root-kicker) strong {
  color: white;
}

/* Private Calendar — operational density inside the established SBG protected shell. */
.calendar-main { width: min(100% - 40px, 1540px); }
.calendar-heading { margin-bottom: 20px; }
.calendar-app { min-height: 70svh; border: 1px solid var(--fs-line); background: var(--fs-surface); }
.calendar-toolbar { position: sticky; z-index: 9; top: 0; display: grid; grid-template-columns: minmax(470px,1.3fr) auto minmax(360px,1fr); gap: 12px; align-items: center; padding: 12px 18px; border-bottom: 1px solid var(--fs-line); background: color-mix(in srgb,var(--fs-surface) 94%,transparent); backdrop-filter: blur(16px); }
.calendar-toolbar button,.calendar-view-switch button,.calendar-tools button { min-height: 38px; border: 1px solid var(--fs-line); border-radius: 7px; background: var(--fs-surface); color: var(--fs-ink); font: 800 .74rem/1 Inter,system-ui,sans-serif; letter-spacing: .04em; cursor: pointer; }
.calendar-date-nav,.calendar-view-switch,.calendar-tools { display: flex; gap: 6px; align-items: center; min-width: 0; }
.calendar-date-nav h2 { min-width: 0; margin: 0 0 0 7px; color: var(--fs-ink); font: 800 clamp(1.2rem,1.7vw,1.75rem)/1 FS Display,Impact,sans-serif; text-transform: uppercase; white-space: nowrap; }
.calendar-date-nav button:first-child { padding-inline: 13px; }
.calendar-date-nav button:not(:first-child) { width: 38px; font-size: 1.35rem; }
.calendar-view-switch { padding: 3px; border-radius: 9px; background: var(--fs-surface-2); }
.calendar-view-switch button { min-height: 34px; padding-inline: 11px; border-color: transparent; background: transparent; }
.calendar-view-switch button[aria-pressed="true"] { border-color: var(--fs-line); background: var(--fs-surface); box-shadow: 0 2px 8px #00000012; color: var(--fs-red); }
.calendar-tools { justify-content: flex-end; }
.calendar-tools label { flex: 1 1 180px; max-width: 320px; }
.calendar-tools .protected-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.calendar-tools input { width: 100%; min-height: 38px; padding: 8px 11px; border: 1px solid var(--fs-line); border-radius: 7px; background: var(--fs-bg); color: var(--fs-ink); font: 500 .88rem/1.2 Inter,system-ui,sans-serif; }
.calendar-filter-panel { display: flex; flex-wrap: wrap; gap: 8px 20px; padding: 12px 18px; border-bottom: 1px solid var(--fs-line); background: var(--fs-surface-2); }
.calendar-filter-panel label { display: flex; gap: 7px; align-items: center; color: var(--fs-ink); font: 700 var(--protected-label-size)/1.3 Inter,system-ui,sans-serif; }
.calendar-alerts { display: flex; gap: 1px; border-bottom: 1px solid var(--fs-line); background: var(--fs-line); }
.calendar-alerts > :is(span,button) { flex: 0 1 auto; min-width: 0; display: flex; align-items: center; padding: 9px 16px; border: 0; background: var(--fs-surface); color: var(--fs-ink); text-align: left; }
.calendar-alerts strong { color: var(--fs-red); font: 800 .76rem/1.2 Inter,system-ui,sans-serif; text-transform: uppercase; }
.calendar-alerts span span,.calendar-alerts button span { color: var(--fs-muted); font: 600 .76rem/1.3 Inter,system-ui,sans-serif; }
.calendar-surface { min-width: 0; overflow: auto; }
.calendar-days { min-width: 760px; display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); }
.calendar-days.is-day { min-width: 0; grid-template-columns: minmax(0,1fr); }
.calendar-day-column { min-width: 0; border-right: 1px solid var(--fs-line); }
.calendar-day-column > header { position: relative; z-index: 4; display: flex; gap: 7px; align-items: baseline; justify-content: center; min-height: 58px; padding: 12px; border-bottom: 1px solid var(--fs-line); background: var(--fs-surface); }
.calendar-day-column > header span { color: var(--fs-muted); font: 800 .68rem/1 Inter,system-ui,sans-serif; text-transform: uppercase; }
.calendar-day-column > header strong { color: var(--fs-ink); font: 800 1.45rem/1 FS Display,Impact,sans-serif; }
.calendar-all-day { min-height: 62px; display: grid; grid-template-columns: 52px minmax(0,1fr) 32px; gap: 6px; align-items: start; padding: 8px 5px; border-bottom: 1px solid var(--fs-line); }
.calendar-all-day > div { display: grid; gap: 5px; }
.calendar-all-day-label { padding-top: 7px; color: var(--fs-muted); font: 800 .63rem/1 Inter,system-ui,sans-serif; text-align: right; text-transform: uppercase; }
.calendar-all-day-add,.calendar-month-add { min-width: 28px; min-height: 28px; border: 1px solid transparent; border-radius: 5px; background: transparent; color: var(--fs-muted); font: 800 1rem/1 Inter,system-ui,sans-serif; cursor: pointer; }
.calendar-all-day-add:hover,.calendar-all-day-add:focus-visible,.calendar-month-add:hover,.calendar-month-add:focus-visible { border-color: var(--fs-line); background: var(--fs-surface-2); color: var(--fs-red); }
.calendar-time-grid { position: relative; min-height: 1440px; background: repeating-linear-gradient(to bottom,transparent 0 29px,color-mix(in srgb,var(--fs-line) 48%,transparent) 29px 30px); }
.calendar-time-slots { position: absolute; z-index: 1; inset: 0; pointer-events: none; }
.calendar-slot { position: absolute; top: calc(var(--slot) * 30px); left: 58px; right: 0; height: 30px; padding: 0 8px; border: 0; border-top: 1px solid transparent; background: transparent; color: transparent; text-align: left; cursor: crosshair; pointer-events: auto; }
.calendar-slot:hover,.calendar-slot:focus-visible { border-top-color: var(--fs-red); background: var(--fs-surface-2); color: var(--fs-red); outline: 0; }
.calendar-slot span { position: relative; top: -9px; font: 800 .75rem/1 Inter,system-ui,sans-serif; }
.calendar-hour { height: 60px; border: 0; }
.calendar-hour time { position: relative; z-index: 2; top: -7px; display: block; width: 54px; padding-right: 8px; color: var(--fs-muted); font: 700 .64rem/1 Inter,system-ui,sans-serif; text-align: right; pointer-events: none; }
.calendar-timed-event { position: absolute; z-index: 3; top: calc(var(--start) * 1px); left: 58px; right: 5px; height: calc(max(var(--duration),30) * 1px); overflow: hidden; }
.calendar-timed-event.is-short .calendar-event { height: 100%; grid-template-columns: 18px minmax(0,1fr); gap: 4px; align-items: center; padding-block: 3px; }
.calendar-timed-event.is-short .calendar-kind { width: 16px; height: 16px; font-size: .5rem; }
.calendar-timed-event.is-short :is(small,em) { display: none; }
.calendar-event { width: 100%; min-width: 0; display: grid; grid-template-columns: 24px minmax(0,1fr); gap: 7px; align-items: start; padding: 6px 7px; border: 0; border-left: 3px solid var(--fs-ink); border-radius: 4px; background: color-mix(in srgb,var(--fs-ink) 7%,var(--fs-surface)); color: var(--fs-ink); text-align: left; cursor: pointer; overflow: hidden; }
.calendar-event.is-follow-up { border-left-color: var(--fs-red); background: var(--fs-surface-2); }
.calendar-event.is-prayer { border-left-color: #6d5ba6; background: color-mix(in srgb,#6d5ba6 10%,var(--fs-surface)); }
.calendar-event.is-work { border-left-color: #356f77; background: color-mix(in srgb,#356f77 10%,var(--fs-surface)); }
.calendar-event.is-overdue { border-top: 1px solid var(--fs-red); border-right: 1px solid var(--fs-red); border-bottom: 1px solid var(--fs-red); }
.calendar-event.has-conflict { outline: 2px solid #db9a25; outline-offset: -2px; }
.calendar-event > span:not(.calendar-kind) { min-width: 0; }
.calendar-event strong,.calendar-event small,.calendar-event em { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.calendar-event strong { font: 800 .78rem/1.2 Inter,system-ui,sans-serif; }
.calendar-event small { margin-top: 2px; color: var(--fs-muted); font: 650 .67rem/1.25 Inter,system-ui,sans-serif; }
.calendar-event em { margin-top: 3px; color: var(--fs-red); font: 800 .6rem/1.2 Inter,system-ui,sans-serif; font-style: normal; text-transform: uppercase; }
.calendar-event.is-condensed { min-height: 25px; display: flex; align-items: center; gap: 5px; padding: 4px 6px; }
.calendar-event.is-condensed time { flex: 0 0 auto; color: var(--fs-muted); font: 700 .62rem/1 Inter,system-ui,sans-serif; white-space: nowrap; }
.calendar-event.is-condensed strong { min-width: 0; flex: 1 1 auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.calendar-kind { width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; background: var(--fs-ink); color: var(--fs-bg); font: 800 .61rem/1 Inter,system-ui,sans-serif; }
.calendar-month-grid { min-width: 820px; display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); grid-auto-rows: minmax(132px,1fr); }
.calendar-weekdays { min-width: 820px; display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); border-bottom: 1px solid var(--fs-line); }
.calendar-weekdays span { padding: 9px; color: var(--fs-muted); font: 800 .65rem/1 Inter,system-ui,sans-serif; text-align: center; text-transform: uppercase; }
.calendar-month-grid > div { min-width: 0; border-right: 1px solid var(--fs-line); border-bottom: 1px solid var(--fs-line); }
.calendar-month-grid > .is-other-month { opacity: .42; }
.calendar-month-day { height: 100%; min-width: 0; padding: 5px; }
.calendar-month-day.is-today header button { background: var(--fs-red); color: white; }
.calendar-month-day header button { width: 28px; height: 28px; border: 0; border-radius: 50%; background: transparent; color: var(--fs-ink); font: 800 .72rem/1 Inter,system-ui,sans-serif; }
.calendar-month-day > div { display: grid; gap: 2px; }
.calendar-month-add { justify-self: start; opacity: 0; }
.calendar-month-day:hover .calendar-month-add,.calendar-month-add:focus-visible { opacity: 1; }
.calendar-more { border: 0; background: none; color: var(--fs-red); font: 800 .65rem/1.2 Inter,system-ui,sans-serif; text-align: left; }
.calendar-year { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); }
.calendar-year button { min-height: 175px; display: grid; place-content: center; gap: 8px; border: 0; border-right: 1px solid var(--fs-line); border-bottom: 1px solid var(--fs-line); background: var(--fs-surface); color: var(--fs-ink); cursor: pointer; }
.calendar-year span { font: 800 1.2rem/1 FS Display,Impact,sans-serif; text-transform: uppercase; }
.calendar-year strong { color: var(--fs-red); font: 800 3.7rem/.85 FS Display,Impact,sans-serif; }
.calendar-year small { color: var(--fs-muted); font: 700 .68rem/1.2 Inter,system-ui,sans-serif; text-transform: uppercase; }
.calendar-agenda { min-height: 420px; }
.calendar-agenda-day { display: grid; grid-template-columns: minmax(150px,.28fr) minmax(0,1fr); border-bottom: 1px solid var(--fs-line); }
.calendar-agenda-day > header { padding: 20px; color: var(--fs-ink); font: 800 .8rem/1.3 Inter,system-ui,sans-serif; }
.calendar-agenda-day > div { display: grid; gap: 5px; padding: 12px; border-left: 1px solid var(--fs-line); }
.calendar-empty { padding: clamp(46px,8vw,110px) 24px; text-align: center; }
.calendar-empty h3 { margin: 0; color: var(--fs-ink); font: 800 clamp(2rem,4vw,4rem)/.9 FS Display,Impact,sans-serif; text-transform: uppercase; }
.calendar-empty p { color: var(--fs-muted); font: 400 1rem/1.6 "Source Serif 4",Georgia,serif; }
.calendar-day-column.is-drop-target,.calendar-month-day.is-drop-target { outline: 3px solid var(--fs-red); outline-offset: -3px; }
.calendar-editor .protected-dialog-shell,.calendar-settings .protected-dialog-shell,.calendar-connect .protected-dialog-shell { width: min(760px,calc(100vw - 28px)); }
.calendar-editor footer [data-calendar-delete] { margin-right: auto; color: var(--fs-red); }
.calendar-privacy-note { padding: 13px 15px; border-left: 3px solid var(--fs-red); background: var(--fs-surface-2); color: var(--fs-muted); font: 700 var(--protected-helper-size)/1.5 Inter,system-ui,sans-serif; }
.calendar-connect-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-block: 20px; }
.calendar-connect [data-calendar-subscription] { margin-block: 18px; padding: 18px; border: 1px solid var(--fs-line); background: var(--fs-surface-2); }
.calendar-connect [data-calendar-subscription] label { display: grid; gap: 7px; color: var(--fs-ink); font: 800 var(--protected-label-size)/1.3 Inter,system-ui,sans-serif; }
.calendar-connect [data-calendar-subscription] input { width: 100%; padding: 10px; border: 1px solid var(--fs-line); background: var(--fs-surface); color: var(--fs-ink); }
.calendar-connect details { margin-block: 18px; }
.calendar-connect summary { color: var(--fs-ink); font: 800 var(--protected-label-size)/1.3 Inter,system-ui,sans-serif; cursor: pointer; }

@media (max-width: 1240px) {
  .calendar-toolbar { grid-template-columns: 1fr auto; }
  .calendar-view-switch { grid-row: 2; grid-column: 1 / -1; justify-self: center; }
  .calendar-year { grid-template-columns: repeat(3,minmax(0,1fr)); }
}

@media (max-width: 700px) {
  .calendar-main { width: 100%; padding-inline: 14px; }
  .calendar-heading { align-items: flex-start; }
  .calendar-heading .protected-head-actions { width: 100%; }
  .calendar-app { border-inline: 0; }
  .calendar-toolbar { position: static; grid-template-columns: 1fr; padding: 12px; }
  .calendar-date-nav { flex-wrap: wrap; }
  .calendar-date-nav h2 { flex: 1 0 100%; order: -1; margin: 0 0 5px; }
  .calendar-view-switch { grid-row: auto; grid-column: auto; width: 100%; justify-self: stretch; overflow-x: auto; }
  .calendar-view-switch button { flex: 1 0 auto; }
  .calendar-toolbar button,
  .calendar-view-switch button,
  .calendar-tools button { min-height: 44px; }
  .calendar-tools { justify-content: stretch; flex-wrap: wrap; }
  .calendar-tools label { max-width: none; flex-basis: 100%; }
  .calendar-alerts { display: grid; }
  .calendar-days.is-day { min-width: 0; }
  .calendar-all-day { grid-template-columns: 44px minmax(0,1fr) 32px; }
  .calendar-month-grid,.calendar-weekdays { min-width: 700px; }
  .calendar-year { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .calendar-year button { min-height: 140px; }
  .calendar-agenda-day { grid-template-columns: 1fr; }
  .calendar-agenda-day > header { padding: 15px 12px 4px; }
  .calendar-agenda-day > div { border-left: 0; }
  .calendar-editor .protected-dialog-shell,.calendar-settings .protected-dialog-shell,.calendar-connect .protected-dialog-shell { width: 100%; min-height: 100%; border-radius: 0; }
}

.calendar-days.is-week .calendar-day-column:not(:first-child) .calendar-hour time { visibility: hidden; }
.calendar-days.is-week .calendar-day-column:not(:first-child) :is(.calendar-slot,.calendar-timed-event) { left: 4px; }
.calendar-days.is-week .calendar-all-day { grid-template-columns: minmax(0,1fr) 28px; }
.calendar-days.is-week .calendar-all-day-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }

@media (width <= 900px) {
  .root-page-hero.root-page-hero--cinematic {
    min-height: calc(100svh - 72px);
  }

  .root-page-hero.root-page-hero--cinematic::before {
    background:
      linear-gradient(90deg, #050608f7 0 8%, #050608d9 47%, #05060870 100%),
      linear-gradient(0deg, #050608ed 0 13%, transparent 52%),
      linear-gradient(180deg, #0506086b 0, transparent 32%);
  }

  .root-page-hero--cinematic .root-page-hero-media {
    width: 100%;
    inset: 0;
    -webkit-mask-image: none;
    mask-image: none;
  }

  .root-page-hero--cinematic .root-page-hero-media figcaption {
    right: auto;
    bottom: 2rem;
    left: 1.5rem;
    text-align: left;
  }
}

@media (width <= 700px) {
  body:is([data-page="biblical-counseling"], [data-page="daily-devotions"], [data-page="theology-explorer"], [data-page="invitation"], [data-page="world-missions"])
    .root-page-hero .root-actions .root-button {
    width: auto;
    min-height: 44px;
    padding: .58rem .9rem;
  }

  .devotion-day-nav button,
  .devotion-share button,
  .theology-article > footer :is(a, button) {
    flex: 0 1 auto;
  }

  .invitation-closing-actions {
    width: min(100%, 20rem);
  }
}
