:root {
  --ink: #1d1d17;
  --paper: #f3ead7;
  --paper-deep: #e3d2ae;
  --night: #17160f;
  --night-soft: #29271b;
  --gold: #d8aa54;
  --gold-light: #f2d99a;
  --rust: #9d4f2d;
  --water: #2d7880;
  --line: rgba(45, 36, 22, 0.2);
  --enoch: #98603b;
  --isaiah: #bd7b39;
  --jeremiah: #6e4632;
  --luke: #617449;
  --john: #27777f;
  --hebrews: #5e556e;
  --psalms: #874c61;
  --proverbs: #a67935;
  --matthew: #a97038;
  --ephesians: #788cae;
  --genesis: #936e38;
  --exodus: #a45b41;
  --leviticus: #8c614c;
  --deuteronomy: #a5865d;
  --hosea: #8e6b43;
  --james: #7f7850;
  --galatians: #56806b;
  --colossians: #648785;
  --corinthians: #716788;
  --philippians: #a27b3f;
  --peter: #536a78;
  --johnletter: #568897;
  --romans: #955a6a;
  --job: #727070;
  --daniel: #706582;
  --pins: #c59e45;
  --shadow: 0 24px 70px rgba(22, 16, 9, 0.22);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: #d7c399;
  font-family: Georgia, 'Times New Roman', serif;
}
button, input, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible {
  outline: 3px solid #78c8c3;
  outline-offset: 3px;
}

.skip-link {
  position: fixed; top: 10px; left: 10px; z-index: 100;
  transform: translateY(-160%); background: white; color: black;
  padding: .7rem 1rem; border-radius: 4px;
}
.skip-link:focus { transform: translateY(0); }

.hero {
  min-height: 92vh;
  color: #f8efd9;
  background:
    linear-gradient(90deg, rgba(14, 21, 17, .96) 0%, rgba(18, 25, 19, .85) 48%, rgba(15, 25, 22, .42) 100%),
    url('assets/canyon-landscape.webp') center 45% / cover no-repeat;
  padding: 0 clamp(1.2rem, 5vw, 5.6rem) 4rem;
  display: grid;
  grid-template-rows: auto 1fr auto;
  overflow: hidden;
  position: relative;
}
.hero::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(0deg, rgba(16, 21, 15, .55), transparent 26%);
  pointer-events: none;
}
.hero { animation: hero-breathe 24s ease-in-out infinite alternate; }
@keyframes hero-breathe {
  from { background-position: center center, 50% 45%; }
  to { background-position: center center, 53% 48%; }
}
.topbar { display: flex; align-items: center; justify-content: space-between; padding: 1.4rem 0; border-bottom: 1px solid rgba(255,255,255,.13); position: relative; z-index: 1; }
.brand { display: inline-flex; gap: .8rem; align-items: center; color: inherit; text-decoration: none; }
.brand-mark { width: 2.7rem; height: 2.7rem; display: grid; place-items: center; border: 1px solid var(--gold); border-radius: 50%; color: var(--gold-light); font-family: Arial, sans-serif; font-size: .73rem; letter-spacing: .06em; }
.brand strong { display: block; font-size: 1rem; letter-spacing: .03em; }
.brand small { display: block; color: #bdb49d; margin-top: .15rem; font-family: Arial, sans-serif; font-size: .7rem; }
.privacy-badge { border: 1px solid rgba(255,255,255,.2); border-radius: 999px; padding: .45rem .7rem; font: 600 .69rem/1 Arial, sans-serif; letter-spacing: .08em; text-transform: uppercase; color: #c9c0aa; }
.privacy-badge span { color: #78a175; margin-right: .25rem; }
.top-links { display: flex; gap: 1.4rem; align-items: center; font: 700 .65rem Arial, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.top-links a { color: #c9c0aa; text-decoration: none; }
.top-links a:hover { color: var(--gold-light); }
.hero-copy { align-self: center; max-width: 840px; position: relative; z-index: 1; padding: 4.5rem 0; }
.eyebrow { color: var(--gold); font: 700 .68rem/1.3 Arial, sans-serif; letter-spacing: .24em; margin: 0 0 1rem; }
.eyebrow.dark { color: #855026; }
.hero h1 { font-weight: 400; font-size: clamp(3rem, 7vw, 6.8rem); line-height: .94; letter-spacing: -.055em; margin: 0; max-width: 1000px; text-wrap: balance; }
.hero-deck { max-width: 680px; font: 400 clamp(1rem, 1.7vw, 1.2rem)/1.65 Arial, sans-serif; color: #c9c1af; margin: 2rem 0; }
.hero-actions { display: flex; align-items: center; gap: 1.4rem; flex-wrap: wrap; }
.primary-action { border: 0; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: .8rem; background: var(--gold); color: #211b10; padding: .95rem 1.15rem; border-radius: 2px; text-decoration: none; font: 700 .75rem/1 Arial, sans-serif; text-transform: uppercase; letter-spacing: .11em; }
.primary-action:hover { background: #e4bd70; }
.text-action { border: 0; background: transparent; color: #ddd4c0; padding: .75rem 0; cursor: pointer; font: 600 .75rem/1 Arial, sans-serif; border-bottom: 1px solid rgba(255,255,255,.25); }
.hero-stats { display: flex; gap: clamp(2rem, 8vw, 7rem); border-top: 1px solid rgba(255,255,255,.13); padding-top: 1.2rem; position: relative; z-index: 1; }
.hero-stats div { display: flex; align-items: baseline; gap: .6rem; }
.hero-stats strong { color: var(--gold-light); font-size: 1.55rem; font-weight: 400; }
.hero-stats span { color: #9d9685; font: 600 .63rem/1 Arial, sans-serif; text-transform: uppercase; letter-spacing: .12em; }

.map-shell { padding: clamp(3.2rem, 7vw, 7rem) clamp(1rem, 4vw, 4.5rem); background: var(--paper); }
.map-intro { max-width: 1520px; margin: 0 auto; display: flex; justify-content: space-between; gap: 2rem; align-items: end; }
.map-intro h2 { font-size: clamp(2.2rem, 4vw, 4.2rem); font-weight: 400; letter-spacing: -.045em; margin: 0 0 .55rem; }
.map-intro p:last-child { margin: 0; font: .95rem/1.6 Arial, sans-serif; color: #665d4d; }
.map-tools { display: flex; align-items: center; gap: .8rem; }
.search-box { display: flex; align-items: center; width: min(360px, 34vw); background: rgba(255,255,255,.55); border: 1px solid var(--line); padding: .85rem 1rem; }
.search-box svg { width: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; flex: none; }
.search-box input { border: 0; outline: 0; background: transparent; width: 100%; padding-left: .7rem; font: .84rem Arial, sans-serif; color: var(--ink); }
.clear-button { border: 0; background: transparent; color: #665d4d; cursor: pointer; font: 600 .7rem Arial, sans-serif; text-decoration: underline; text-underline-offset: .25rem; }
.filter-row { max-width: 1520px; margin: 2rem auto 1rem; display: flex; gap: .5rem; overflow-x: auto; padding-bottom: .35rem; scrollbar-width: thin; }
.filter-chip { flex: none; border: 1px solid rgba(51,42,29,.25); background: transparent; color: #5f5647; border-radius: 999px; padding: .55rem .82rem; font: 700 .66rem Arial, sans-serif; text-transform: uppercase; letter-spacing: .08em; cursor: pointer; }
.filter-chip:hover, .filter-chip.active { background: var(--night); color: #f7ecd4; border-color: var(--night); }
.map-swipe-note { display: none; }

.canyon-layout { max-width: 1520px; margin: 0 auto; min-height: 830px; display: grid; grid-template-columns: 282px minmax(0, 1fr); background: #4c5b4e; box-shadow: var(--shadow); border: 1px solid rgba(61,43,22,.3); }
.map-key { background: #262319; color: #f5ead3; padding: 1.6rem 1.3rem; position: relative; z-index: 2; max-height: 900px; overflow-y: auto; }
.key-label { font: 700 .62rem Arial, sans-serif; letter-spacing: .2em; color: var(--gold); border-bottom: 1px solid rgba(255,255,255,.16); padding-bottom: .8rem; margin: 0 0 .8rem; }
.room-threshold { display: flex; flex-direction: column; justify-content: flex-end; min-height: 200px; padding: 1rem; margin: 1.1rem 0 1.35rem; color: #fff5df; text-decoration: none; background: linear-gradient(0deg,rgba(18,25,20,.97),rgba(18,25,20,.35) 72%),url('assets/reading-room.webp') 58% center / cover; border: 1px solid rgba(234,204,146,.56); transition: border-color .2s, transform .2s; }
.room-threshold:hover { border-color: var(--gold-light); transform: translateY(-2px); }
.room-threshold > span { font: 700 .64rem/1.3 Arial, sans-serif; letter-spacing: .15em; color: var(--gold-light); }
.room-threshold strong { margin: .35rem 0; font: 400 1.5rem/1.07 Georgia, serif; }
.room-threshold small { font: .8rem/1.35 Arial, sans-serif; color: #e2dac8; }
.room-threshold em { margin-top: .85rem; font: 700 .68rem Arial, sans-serif; font-style: normal; color: var(--gold-light); }
.mobile-reading-threshold { display: none; }
.legend-item { width: 100%; display: grid; grid-template-columns: 11px 1fr auto; gap: .65rem; align-items: center; padding: .68rem .2rem; border: 0; background: none; color: #d6cfbe; text-align: left; cursor: pointer; font: .72rem Arial, sans-serif; }
.legend-item:hover { color: white; }
.legend-item.active { color: var(--gold-light); }
.legend-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--trail-color); box-shadow: 0 0 0 3px color-mix(in srgb, var(--trail-color) 20%, transparent); }
.legend-count { color: #777063; font-size: .65rem; }
.ledger-note { position: static; margin-top: 1.4rem; border: 1px solid rgba(216,170,84,.34); padding: .9rem; display: flex; gap: .6rem; color: #a8a08d; }
.ledger-note span { color: var(--gold); }
.ledger-note p { font: .66rem/1.55 Arial, sans-serif; margin: 0; }
.ledger-note strong { color: #e0d4bc; }

.map-canvas { position: relative; min-width: 0; min-height: 830px; overflow: hidden; background: #657267; }
.landscape { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.map-canvas::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(0deg,rgba(20,30,23,.13),transparent 25%,transparent 80%,rgba(16,25,27,.14)); }
.map-nodes { position: absolute; inset: 0; }
.overview-motion { z-index: 1; }
.hero-motion { z-index: 0; clip-path: inset(0 0 0 48%); }
.scene-motion { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.scene-motion::before { content: ''; position: absolute; inset: -12%; background: radial-gradient(ellipse at 70% 25%, rgba(255,242,199,.16), transparent 38%), radial-gradient(ellipse at 20% 70%, rgba(231,247,225,.1), transparent 42%); mix-blend-mode: screen; animation: air-drift 19s ease-in-out infinite alternate; }
@keyframes air-drift { from { transform: translate3d(-2%,0,0); opacity: .7; } to { transform: translate3d(3%,-1%,0); opacity: 1; } }
.motion-rabbit { position: absolute; left: var(--rabbit-start); bottom: var(--rabbit-ground); width: var(--rabbit-size, 70px); z-index: 1; filter: drop-shadow(0 2px 3px rgba(0,0,0,.3)); animation: rabbit-wander var(--rabbit-duration, 28s) ease-in-out infinite; animation-delay: var(--rabbit-delay, 0s); }
.motion-rabbit img { width: 100%; height: auto; display: block; }
@keyframes rabbit-wander {
  0%, 8% { left: var(--rabbit-start); transform: translateY(0) scaleX(1); }
  17% { left: var(--rabbit-mid); transform: translateY(-8px) scaleX(1); }
  25% { left: var(--rabbit-mid); transform: translateY(0) scaleX(1); }
  36% { left: var(--rabbit-end); transform: translateY(-6px) scaleX(1); }
  44%, 64% { left: var(--rabbit-end); transform: translateY(0) scaleX(1); }
  65% { left: var(--rabbit-end); transform: translateY(0) scaleX(-1); }
  74% { left: var(--rabbit-mid); transform: translateY(-7px) scaleX(-1); }
  82%, 94% { left: var(--rabbit-start); transform: translateY(0) scaleX(-1); }
  100% { left: var(--rabbit-start); transform: translateY(0) scaleX(1); }
}
.motion-fish { position: absolute; left: var(--fish-start); top: var(--fish-y); width: var(--fish-size, 30px); z-index: 1; opacity: .72; filter: drop-shadow(0 1px 2px rgba(3,32,39,.25)); mix-blend-mode: multiply; animation: fish-swim var(--fish-duration, 30s) linear infinite; animation-delay: var(--fish-delay, 0s); }
.motion-fish img { display: block; width: 100%; height: auto; transform: scaleX(var(--fish-facing, 1)); }
@keyframes fish-swim { 0% { left: var(--fish-start); transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { left: var(--fish-end); transform: translateY(2px); } }
.motion-butterfly { position: absolute; left: var(--flight-start); top: var(--flight-y); width: var(--butterfly-size, 40px); z-index: 1; filter: drop-shadow(0 2px 3px rgba(0,0,0,.25)); animation: butterfly-flight var(--flight-duration, 18s) ease-in-out infinite; animation-delay: var(--flight-delay, 0s); }
.motion-butterfly img { width: 100%; height: auto; display: block; filter: var(--butterfly-filter, none); animation: butterfly-wings .9s ease-in-out infinite alternate; }
@keyframes butterfly-wings { from { transform: scaleX(.58); } to { transform: scaleX(1); } }
@keyframes butterfly-flight {
  0%, 100% { left: var(--flight-start); transform: translateY(0) rotate(-6deg); opacity: .55; }
  35% { left: var(--flight-end); transform: translateY(-19px) rotate(8deg); opacity: .92; }
  58% { left: var(--flight-end); transform: translateY(-8px) rotate(-3deg); opacity: .84; }
  82% { left: var(--flight-start); transform: translateY(7px) rotate(5deg); opacity: .7; }
}
.canyon-layout.land-active { display: block; }
.land-active .map-key, .map-canvas.in-land > .landscape, .map-canvas.in-land > .overview-water-motion, .map-canvas.in-land > .overview-motion, .map-canvas.in-land > .map-nodes { display: none; }
.map-canvas.in-land { min-height: 880px; }
.map-canvas.in-land::after { display: none; }
.land-scene { position: absolute; inset: 0; isolation: isolate; color: #fff5df; animation: enter-land .45s ease-out both; }
.land-scene[hidden] { display: none; }
@keyframes enter-land { from { opacity: .2; transform: scale(1.015); } to { opacity: 1; transform: scale(1); } }
.land-backdrop { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.land-backdrop { animation: landscape-breathe 27s ease-in-out infinite alternate; }
.land-scene[data-region="john"] .land-backdrop,
.land-scene[data-region="jeremiah"] .land-backdrop { animation: none; }
@keyframes landscape-breathe { from { transform: scale(1); } to { transform: scale(1.045) translate3d(-.6%,.3%,0); } }
.land-scene::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(10,21,20,.77), rgba(10,21,20,.16) 75%), linear-gradient(0deg, rgba(13,21,18,.94) 0%, rgba(13,21,18,.5) 44%, transparent 83%); }
.land-motion { z-index: 0; }
.water-motion { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; pointer-events: none; mix-blend-mode: screen; opacity: .58; }
.overview-water-motion { z-index: 1; opacity: .52; }
.water-motion[hidden] { display: none; }
.land-content { position: relative; z-index: 1; height: 100%; min-height: 880px; display: flex; flex-direction: column; padding: clamp(1.5rem, 3.5vw, 3.3rem); }
.return-canyon { align-self: flex-start; padding: .5rem 0; border: 0; border-bottom: 1px solid rgba(255,244,220,.6); background: transparent; color: #fff5df; cursor: pointer; font: 700 .69rem Arial, sans-serif; letter-spacing: .09em; text-transform: uppercase; }
.return-canyon:hover { color: var(--gold-light); }
.land-intro { max-width: 700px; margin-top: clamp(2rem, 5vw, 4.6rem); }
.land-intro .eyebrow { color: #f7d68a; }
.land-intro h3 { margin: 0; font-size: clamp(3.2rem, 7vw, 7rem); line-height: .9; font-weight: 400; letter-spacing: -.055em; text-shadow: 0 3px 15px rgba(0,0,0,.27); }
.land-intro p:last-child { max-width: 580px; margin: 1.2rem 0 0; color: #f4e9d4; font: .97rem/1.65 Arial, sans-serif; text-shadow: 0 2px 8px rgba(0,0,0,.45); }
.land-stops { margin-top: auto; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; max-height: 390px; overflow-y: auto; padding: 1.2rem .4rem .4rem 0; scrollbar-color: #c6a868 rgba(0,0,0,.3); }
.land-stop { display: flex; flex-direction: column; align-items: flex-start; min-height: 105px; border: 1px solid rgba(246,227,186,.42); background: rgba(18,27,24,.82); color: #f8ecd3; padding: .8rem 1rem; text-align: left; cursor: pointer; backdrop-filter: blur(8px); }
.land-stop:hover, .land-stop:focus-visible { background: rgba(28,48,39,.94); border-color: var(--gold-light); }
.land-stop span { color: #dcc991; font: 700 .58rem/1.3 Arial, sans-serif; letter-spacing: .05em; }
.land-stop strong { margin: .35rem 0 .3rem; font: 400 1.12rem/1.15 Georgia, serif; }
.land-stop small { color: #c9c5b8; font: .67rem/1.45 Arial, sans-serif; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.land-stop.explored strong::after { content: ' ✓'; color: #9fcbb3; }
.land-empty { grid-column: 1/-1; padding: 1.2rem; background: rgba(18,27,24,.82); color: #fff5df; font: .84rem/1.5 Arial, sans-serif; }
.map-label { position: absolute; color: rgba(55,36,21,.36); font: 700 .58rem Arial, sans-serif; letter-spacing: .25em; writing-mode: vertical-rl; }
.map-label--north { right: 2%; top: 5%; }
.map-label--river { left: 2.5%; top: 45%; transform: rotate(180deg); color: rgba(21,84,88,.62); }
.map-compass { position: absolute; top: 4%; left: 3.5%; width: 46px; height: 46px; display: grid; place-items: center; border: 1px solid rgba(49,34,20,.33); border-radius: 50%; color: rgba(49,34,20,.62); font: 700 .55rem Arial, sans-serif; }
.map-compass i { position: absolute; height: 60px; width: 1px; background: rgba(49,34,20,.24); transform: rotate(23deg); }
.map-node { --trail-color: var(--rust); position: absolute; left: var(--x); top: var(--y); transform: translate(-50%, -50%); background: transparent; border: 0; cursor: pointer; color: #25190f; width: 120px; text-align: center; padding: 0; transition: transform .2s ease, opacity .2s ease; }
.map-node:hover, .map-node:focus-visible { transform: translate(-50%, -50%) scale(1.08); z-index: 3; }
.map-node .marker { width: 28px; height: 28px; display: grid; place-items: center; margin: 0 auto .38rem; background: var(--trail-color); color: white; border: 3px solid #f1dfbb; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); box-shadow: 0 5px 12px rgba(30,18,8,.3); }
.map-node .marker i { transform: rotate(45deg); font: 700 .62rem Arial, sans-serif; font-style: normal; }
.map-node.pin .marker { border-radius: 2px; background: #29261c; border-color: var(--gold); }
.map-node.explored .marker::after { content: '✓'; transform: rotate(45deg); color: #fff4d7; }
.map-node.explored .marker i { display: none; }
.map-node strong { display: inline-block; background: rgba(242,228,199,.92); padding: .25rem .35rem; box-shadow: 0 1px 0 rgba(48,31,15,.2); font: 700 .66rem/1.15 Arial, sans-serif; text-transform: uppercase; letter-spacing: .045em; }
.map-node small { display: block; width: max-content; max-width: 120px; margin: .18rem auto 0; padding: .12rem .28rem; background: rgba(60,40,23,.84); color: #f3e6ca; font: .57rem/1.15 Arial, sans-serif; }
.map-node.is-hidden { display: none; }
.trailhead { --trail-color: var(--gold); position: absolute; z-index: 2; left: var(--x); top: var(--y); transform: translate(-50%,-50%); display: flex; align-items: center; gap: .48rem; max-width: 185px; padding: .46rem .65rem .46rem .42rem; border: 1px solid rgba(250,233,187,.75); border-radius: 999px; color: #fff7e7; background: rgba(25,29,24,.88); box-shadow: 0 4px 20px rgba(0,0,0,.38), 0 0 0 3px rgba(30,34,29,.15); cursor: pointer; text-align: left; transition: transform .18s, box-shadow .18s, opacity .18s; }
.trailhead:hover, .trailhead:focus-visible { transform: translate(-50%,-50%) scale(1.09); box-shadow: 0 7px 24px rgba(0,0,0,.45), 0 0 0 5px rgba(245,218,165,.28); z-index: 4; }
.trailhead.selected { background: #231f18; border-color: var(--gold-light); box-shadow: 0 0 0 5px rgba(245,218,165,.4), 0 8px 25px rgba(0,0,0,.45); z-index: 3; }
.trailhead.quiet { opacity: .7; }
.trailhead.is-hidden { display: none; }
.trailhead-dot { flex: none; width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; background: var(--trail-color); color: #fff8e7; font: .72rem Arial, sans-serif; }
.trailhead strong { font: 700 .65rem/1.22 Arial, sans-serif; letter-spacing: .045em; text-transform: uppercase; }
.question-head { border-color: #ddc27c; }
.trail-stops { margin-top: 1.3rem; padding-top: 1.2rem; border-top: 1px solid rgba(255,255,255,.17); }
.trail-stops h3 { margin: 0 0 .6rem; color: var(--gold-light); font: 700 .64rem/1.3 Arial, sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.trail-stops p { margin: .7rem 0; color: #aaa18f; font: .72rem/1.55 Arial, sans-serif; }
.stop-link { display: block; width: 100%; padding: .65rem .1rem; border: 0; border-bottom: 1px solid rgba(255,255,255,.13); background: transparent; color: #ece1cc; text-align: left; cursor: pointer; }
.stop-link:hover { color: white; background: rgba(255,255,255,.06); }
.stop-link span { display: block; color: #a99f8d; font: .59rem/1.35 Arial, sans-serif; }
.stop-link strong { display: block; margin-top: .2rem; font: 700 .7rem/1.4 Arial, sans-serif; }
.stop-link.explored strong::after { content: ' ✓'; color: #9ac0a3; }
.empty-state { position: absolute; inset: 0; margin: auto; width: max-content; height: max-content; text-align: center; background: rgba(242,234,215,.9); padding: 1.2rem 1.6rem; box-shadow: var(--shadow); }
.empty-state strong, .empty-state span { display: block; }
.empty-state span { margin-top: .35rem; color: #746957; font: .75rem Arial, sans-serif; }
.mobile-itinerary { display: none; }

.study-drawer { position: fixed; inset: 0; z-index: 50; visibility: hidden; pointer-events: none; }
.study-drawer.open { visibility: visible; pointer-events: auto; }
.drawer-scrim { position: absolute; inset: 0; background: rgba(15,13,9,.65); opacity: 0; transition: opacity .25s; }
.study-drawer.open .drawer-scrim { opacity: 1; }
.drawer-panel { position: absolute; right: 0; top: 0; bottom: 0; width: min(620px, 94vw); background: #f4ecd9; display: grid; grid-template-rows: auto 1fr auto; transform: translateX(105%); transition: transform .3s ease; box-shadow: -18px 0 60px rgba(0,0,0,.3); }
.study-drawer.open .drawer-panel { transform: translateX(0); }
.drawer-header { padding: 1.35rem clamp(1.2rem, 5vw, 2.6rem); background: #211f16 center / cover; color: #f6ecd6; display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.drawer-header h2 { font-weight: 400; font-size: clamp(1.8rem, 4vw, 2.8rem); letter-spacing: -.035em; margin: .25rem 0 0; }
.drawer-region { margin: 0; color: var(--gold); font: 700 .63rem Arial, sans-serif; letter-spacing: .14em; text-transform: uppercase; }
.close-drawer { border: 1px solid rgba(255,255,255,.2); background: none; color: white; width: 36px; height: 36px; border-radius: 50%; font: 300 1.6rem/1 Arial, sans-serif; cursor: pointer; }
.drawer-scroll { overflow-y: auto; padding: 0 clamp(1.2rem, 5vw, 2.6rem) 2.5rem; }
.passage-card { background: #dfceb0; margin: 0 calc(clamp(1.2rem, 5vw, 2.6rem) * -1) 0; padding: 1.8rem clamp(1.2rem, 5vw, 2.6rem); }
.section-kicker { display: flex; align-items: center; gap: .8rem; color: #765027; font: 700 .58rem Arial, sans-serif; letter-spacing: .13em; }
.section-kicker i { flex: 1; height: 1px; background: currentColor; opacity: .25; }
.passage-card h3 { margin: .8rem 0 .5rem; font-size: 1.25rem; }
.passage-card p { margin: 0; font: .94rem/1.65 Arial, sans-serif; color: #3d382f; }
.passage-card small { display: block; margin-top: .8rem; color: #776c5b; font: .66rem/1.45 Arial, sans-serif; }
.study-section { padding: 1.65rem 0; border-bottom: 1px solid rgba(61,46,24,.16); }
.study-section ul { margin: 1rem 0 0; padding-left: 1.2rem; }
.study-section li { padding-left: .35rem; margin-bottom: .65rem; font: .85rem/1.55 Arial, sans-serif; }
.reflection-section { background: #262218; color: #eee3cc; margin: 0 calc(clamp(1.2rem, 5vw, 2.6rem) * -1); padding-left: clamp(1.2rem, 5vw, 2.6rem); padding-right: clamp(1.2rem, 5vw, 2.6rem); border: 0; }
.reflection-section[hidden] { display: none; }
.reflection-section .section-kicker { color: var(--gold-light); }
.reflection-section .reflection-source { margin: 1rem 0 0; font: .72rem/1.45 Arial, sans-serif; color: #d1b879; }
.reflection-section .study-connection-text { font-size: 1.22rem; line-height: 1.55; margin: .7rem 0 1rem; padding: 0; }
.reflection-reading-link { background: transparent; border: 0; border-bottom: 1px solid currentColor; padding: .2rem 0; color: #eee3cc; font: .72rem/1.4 Arial, sans-serif; cursor: pointer; }
.crossrefs { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .9rem; }
.crossref { border: 1px solid rgba(60,47,28,.3); background: transparent; border-radius: 999px; padding: .48rem .66rem; color: #514634; cursor: pointer; font: 700 .65rem Arial, sans-serif; }
.crossref:hover { background: #e0d0ae; }
.question-list li::marker { color: var(--gold); }
.note-section label { display: block; margin: .85rem 0 .5rem; color: #6d6353; font: .73rem/1.45 Arial, sans-serif; }
.note-section textarea { width: 100%; resize: vertical; border: 1px solid rgba(60,47,28,.3); background: rgba(255,255,255,.42); color: #2d2921; padding: .8rem; font: .85rem/1.5 Arial, sans-serif; }
#saveStatus { min-height: 1em; margin: .35rem 0 0; color: #65784f; font: .64rem Arial, sans-serif; }
.drawer-footer { padding: 1rem clamp(1.2rem, 5vw, 2.6rem); background: #e2d4b7; display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.dark-action { background: #28251b; color: #f6ecd6; }
.dark-action:hover { background: #403b2c; }
.dark-text { color: #574b38; border-color: rgba(52,41,25,.3); }
.site-footer { background: #17160f; color: #a79f8c; padding: 2rem clamp(1.2rem, 5vw, 5.6rem); display: flex; justify-content: space-between; gap: 2rem; font: .67rem/1.5 Arial, sans-serif; }
.site-footer p { margin: 0; }
.site-footer strong { color: #ded3bd; }
.nav-trails { border: 0; padding: 0; background: transparent; color: #e9ca86; font: inherit; cursor: pointer; }
.nav-trails:hover { color: white; }
.my-trails-entry { flex: none; border: 1px solid #695a40; background: #252920; color: #fff2d5; padding: .8rem 1rem; cursor: pointer; font: 700 .84rem/1.2 Arial, sans-serif; }
.my-trails-entry span { margin-left: .6rem; color: #f0cc82; }
.land-personal-button { display: inline-block; margin-top: 1.2rem; padding: .65rem .9rem; border: 1px solid #e7d1a2; background: rgba(16,33,30,.8); color: #fff0cf; cursor: pointer; font: 700 .85rem/1.3 Arial, sans-serif; }
.land-personal-button:hover { background: #314f46; }
.personal-land-stop { border-color: #e7c982; background: rgba(35,42,32,.94); }
.personal-land-stop span { color: #f1cf86; }
.personal-stop-link span { color: #e9c987; }
.personal-dialog { position: fixed; inset: 0 0 0 auto; width: min(650px, 100vw); height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: #f3ead5; color: #29271e; box-shadow: -20px 0 70px rgba(0,0,0,.4); }
.personal-dialog::backdrop { background: rgba(9,17,15,.75); }
.personal-shell { display: flex; flex-direction: column; height: 100%; }
.personal-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: 1.4rem clamp(1.2rem, 5vw, 2.5rem); color: #f7edda; background: #273a34; }
.personal-header .eyebrow { margin: 0; color: #e7c982; }
.personal-header h2 { margin: .25rem 0 0; font: 400 clamp(2rem, 5vw, 3rem)/1.1 Georgia, serif; }
.personal-header button { width: 40px; height: 40px; border: 1px solid #aaaf9e; border-radius: 50%; background: transparent; color: white; font-size: 1.6rem; cursor: pointer; }
.personal-body { overflow-y: auto; padding: 1.4rem clamp(1.2rem, 5vw, 2.5rem) 3rem; }
.personal-intro { margin: 0 0 .5rem; font: 1rem/1.6 Arial, sans-serif; }
.personal-storage { margin: 0 0 1.4rem; color: #625e50; font: .88rem/1.5 Arial, sans-serif; }
.personal-trail-list { display: flex; gap: .5rem; overflow-x: auto; padding-bottom: .7rem; }
.personal-trail-tab { flex: none; border: 1px solid #b2a589; border-radius: 100px; padding: .65rem .9rem; background: transparent; color: #353c31; cursor: pointer; font: 700 .9rem Arial, sans-serif; }
.personal-trail-tab.active { border-color: #253c36; background: #253c36; color: white; }
.personal-new-trail { margin: .7rem 0 1.4rem; padding: 1rem; background: #e5d7b9; }
.personal-new-trail label, .personal-stop-form label { display: block; margin: .65rem 0 .3rem; font: 700 .85rem/1.4 Arial, sans-serif; }
.personal-new-trail label { margin-top: 0; }
.personal-new-trail > div { display: flex; gap: .45rem; }
.personal-new-trail input { flex: 1; min-width: 0; }
.personal-dialog input, .personal-dialog textarea, .personal-dialog select { max-width: 100%; border: 1px solid #aa9f85; border-radius: 0; padding: .7rem; background: #fffdf6; color: #25251e; font: 1rem/1.4 Arial, sans-serif; }
.personal-dialog input:not([type=file]), .personal-dialog textarea, .personal-dialog select { width: 100%; }
.personal-dialog textarea { resize: vertical; }
.personal-dialog button { cursor: pointer; }
.personal-new-trail button, .personal-form-actions button { border: 0; padding: .7rem .9rem; background: #2b4941; color: #fff7e4; font: 700 .86rem/1.3 Arial, sans-serif; }
.personal-active-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; border-top: 1px solid #bdaf90; padding-top: 1rem; }
.personal-active-heading h3 { margin: 0 0 .8rem; font: 400 1.7rem/1.2 Georgia, serif; }
.personal-active-heading h3:focus { outline: 2px solid #537b70; outline-offset: 4px; }
.personal-active-heading button, .personal-stop-actions button, .personal-backup button, .personal-backup label { border: 0; padding: .3rem 0; background: transparent; color: #6c3e2c; text-decoration: underline; text-underline-offset: .2rem; font: 700 .85rem/1.4 Arial, sans-serif; cursor: pointer; }
.personal-empty { color: #66604e; font: .95rem/1.5 Arial, sans-serif; }
.personal-stop-card { padding: 1rem 0; border-bottom: 1px solid #c5b698; }
.personal-stop-card > span { color: #76542c; font: 700 .79rem/1.4 Arial, sans-serif; }
.personal-stop-card h4 { margin: .3rem 0; font: 400 1.22rem/1.3 Georgia, serif; }
.personal-stop-card p { margin: .3rem 0; white-space: pre-wrap; font: .95rem/1.55 Arial, sans-serif; }
.personal-stop-card .personal-question { color: #3a625c; }
.personal-stop-actions { display: flex; flex-wrap: wrap; gap: 1.1rem; margin-top: .7rem; }
.trail-conversation { margin-top: .8rem; padding-left: .9rem; border-left: 2px solid #719589; }
.trail-conversation .trail-answer, .map-ask-form .trail-answer { white-space: pre-wrap; line-height: 1.6; }
.trail-ask-form { display: grid; gap: .55rem; margin-top: 1rem; }
.trail-ask-form label { display: grid; gap: .45rem; font-weight: 700; }
.trail-ask-form button, .map-ask-form button { justify-self: start; border: 0; padding: .7rem .9rem; background: #2b4941; color: #fff7e4; font: 700 .86rem/1.3 Arial, sans-serif; cursor: pointer; }
.trail-ask-form button:disabled, .map-ask-form button:disabled { opacity: .65; cursor: wait; }
.trail-ask-form .trail-ask-status { color: #345e4c; }
.map-ask-form { display: grid; gap: .6rem; margin-top: 1.2rem; }
.map-ask-form label { font-weight: 700; }
.map-ask-form textarea { width: 100%; padding: .7rem; font: 1rem/1.4 Arial, sans-serif; }
.map-ask-form p { margin: .2rem 0; }
.map-ask-hint { font: .84rem/1.5 Arial, sans-serif; opacity: .8; }
.personal-stop-form { margin-top: 1.2rem; padding: 1.2rem; background: #e9ddc4; }
.personal-stop-form h4 { margin: 0 0 .7rem; font: 400 1.5rem Georgia, serif; }
.personal-form-actions { display: flex; gap: .6rem; margin-top: 1rem; }
.personal-form-actions #cancelPersonalEdit { background: #5f5543; }
.personal-backup { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin-top: 1.4rem; padding-top: 1rem; border-top: 1px solid #c5b698; }
.personal-backup input[type=file] { width: 100%; }
.personal-backup p { flex-basis: 100%; margin: 0; font: .85rem/1.4 Arial, sans-serif; color: #345e4c; }
.personal-dialog [hidden] { display: none !important; }
.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; }

.rhythm-shell { padding: clamp(4rem, 8vw, 8rem) clamp(1rem, 5vw, 5.6rem); background: #28261b; color: #f5ead3; }
.reading-room-scene { max-width: 1420px; min-height: 560px; display: flex; align-items: center; margin: 0 auto; padding: clamp(2rem, 5vw, 5rem); border: 1px solid rgba(241,216,160,.48); background: linear-gradient(90deg,rgba(17,20,17,.91) 0%,rgba(22,26,22,.72) 36%,rgba(20,24,20,.08) 78%),url('assets/reading-room.webp') center / cover; box-shadow: 0 24px 60px rgba(0,0,0,.2); }
.reading-room-copy { max-width: 580px; }
.reading-back { display: inline-block; margin-bottom: 3.5rem; padding-bottom: .35rem; color: #f2e9d6; border-bottom: 1px solid rgba(255,255,255,.5); text-decoration: none; font: 700 .78rem Arial, sans-serif; }
.reading-room-copy h2 { font-size: clamp(3.2rem, 6vw, 6rem); font-weight: 400; line-height: .95; letter-spacing: -.055em; margin: 0; text-wrap: balance; }
.reading-room-copy > p:not(.eyebrow) { max-width: 480px; font: 1rem/1.6 Arial, sans-serif; color: #f0e5d2; text-shadow: 0 2px 7px rgba(0,0,0,.45); }
.today-plaque { display: flex; flex-direction: column; align-items: flex-start; max-width: 380px; margin-top: 2rem; padding: 1.2rem 1.4rem; background: rgba(29,34,30,.9); border-left: 3px solid var(--gold); box-shadow: 0 12px 30px rgba(0,0,0,.16); }
.today-plaque > span { color: var(--gold-light); font: 700 .72rem Arial, sans-serif; letter-spacing: .14em; }
.today-plaque strong { margin: .55rem 0 .25rem; color: #fff5df; font: 400 1.5rem/1.2 Georgia, serif; }
.today-plaque small { color: #d2c9b6; font: .87rem/1.4 Arial, sans-serif; }
.today-plaque button { margin-top: .9rem; padding: .45rem 0; border: 0; border-bottom: 1px solid var(--gold-light); background: transparent; color: var(--gold-light); cursor: pointer; font: 700 .78rem Arial, sans-serif; }
.rhythm-heading { max-width: 1420px; margin: 3.8rem auto 2.7rem; display: flex; align-items: end; justify-content: space-between; gap: 2rem; }
.rhythm-heading h2 { margin: 0; font-weight: 400; font-size: clamp(2.5rem, 5.6vw, 5.4rem); line-height: 1.02; letter-spacing: -.05em; }
.rhythm-heading h2 em { color: var(--gold-light); font-weight: 400; }
.rhythm-heading p:last-child { max-width: 610px; margin: 1.2rem 0 0; font: .95rem/1.65 Arial, sans-serif; color: #aaa18f; }
.rhythm-layout { max-width: 1420px; margin: 0 auto; display: grid; grid-template-columns: minmax(285px, .8fr) minmax(0, 1.4fr); border: 1px solid #6b5b3f; box-shadow: 0 30px 80px rgba(0,0,0,.14); }
.rhythm-layout, .day-row { scroll-margin-top: 1.5rem; }
.month-column { padding: clamp(1.3rem, 3vw, 2.5rem); background: #413c2c; }
.month-banner { border-bottom: 1px solid rgba(255,255,255,.17); padding-bottom: 1.6rem; }
.month-banner span { color: var(--gold-light); font: 700 .62rem Arial, sans-serif; letter-spacing: .19em; }
.month-banner h3 { font-weight: 400; font-size: clamp(2.1rem, 3.3vw, 3.2rem); line-height: 1.05; letter-spacing: -.035em; margin: .65rem 0; }
.month-banner p { font: .81rem/1.6 Arial, sans-serif; color: #bfb49c; margin: 0; }
.week-list { margin-top: 1rem; display: grid; }
.week-item { position: relative; width: 100%; text-align: left; padding: 1.1rem 2rem 1.1rem .7rem; background: transparent; color: #d5cbb8; border: 0; border-bottom: 1px solid rgba(255,255,255,.13); cursor: pointer; }
.week-item:hover, .week-item.active { background: #252219; color: #fff0cd; }
.week-item .week-range { display: block; color: #a6a08d; font: 700 .6rem Arial, sans-serif; letter-spacing: .13em; margin-bottom: .35rem; }
.week-item strong { font-size: 1.12rem; font-weight: 400; }
.week-arrow { position: absolute; right: .7rem; top: 50%; transform: translateY(-50%); color: var(--gold); }
.daily-column { min-width: 0; background: #f2e8d2; color: #29251d; padding: clamp(1.3rem, 3vw, 2.8rem); }
.daily-heading h3 { font-size: clamp(2rem, 3vw, 3rem); line-height: 1.1; font-weight: 400; letter-spacing: -.04em; margin: 0 .2rem .35rem 0; }
.daily-heading p:last-child { margin: 0 0 1.8rem; color: #6c6253; font: .84rem/1.55 Arial, sans-serif; }
.day-list { border-top: 1px solid #cfc0a3; }
.day-row { border-bottom: 1px solid #cfc0a3; padding: 1rem .1rem .8rem; }
.day-top { display: grid; grid-template-columns: 74px minmax(0, 1fr) auto; gap: .9rem; align-items: start; }
.day-date { padding-top: .24rem; font: 700 .64rem Arial, sans-serif; letter-spacing: .1em; color: #8e522d; white-space: nowrap; }
.day-date.today::after { content: ' TODAY'; display: block; font-size: .52rem; color: #2d7880; margin-top: .25rem; }
.day-details { min-width: 0; }
.day-details strong { display: block; font-size: 1.04rem; font-weight: 400; }
.day-details span { display: block; font: .76rem/1.45 Arial, sans-serif; color: #736958; margin-top: .28rem; }
.day-details .day-study-preview { margin: .7rem 0 0; color: #564d3d; font: .88rem/1.5 Arial, sans-serif; }
.day-check { white-space: nowrap; display: flex; align-items: center; gap: .35rem; cursor: pointer; color: #665a48; font: 700 .64rem Arial, sans-serif; text-transform: uppercase; }
.day-check input { accent-color: #3e7369; width: 16px; height: 16px; cursor: pointer; }
.day-row.done .day-details strong { color: #698076; }
.day-controls { margin: .45rem 0 0 calc(74px + .9rem); display: flex; gap: 1rem; }
.inline-button { border: 0; padding: .2rem 0; background: transparent; color: #7f4c2c; text-decoration: underline; text-underline-offset: .2rem; cursor: pointer; font: 700 .64rem Arial, sans-serif; }
.inline-button.study-toggle { color: #2a6768; }
.day-study-panel { margin: .9rem 0 .4rem calc(74px + .9rem); padding: 1.2rem 1.4rem; background: #e7dac0; border-left: 3px solid #668b7c; }
.day-study-panel[hidden] { display: none; }
.day-study-panel h4, .day-study-panel strong { color: #305f5f; font: 700 .7rem/1.4 Arial, sans-serif; letter-spacing: .1em; }
.day-study-panel h4 { margin: 0 0 .65rem; }
.day-study-panel .study-original { display: block; margin-bottom: .6rem; color: #675947; font: .8rem/1.45 Arial, sans-serif; }
.study-points { margin: 0; padding-left: 1.25rem; color: #302d25; font: .92rem/1.55 Arial, sans-serif; }
.study-points li + li { margin-top: .55rem; }
.day-study-panel p { margin: .35rem 0 0; color: #3f3a30; font: .9rem/1.55 Arial, sans-serif; }
.study-reflection, .study-question, .study-prayer { margin-top: 1rem; padding-top: .85rem; border-top: 1px solid rgba(64,56,38,.18); }
.day-expansion { margin: .7rem 0 .3rem calc(74px + .9rem); padding: 1rem; background: #e8dac0; }
.day-expansion[hidden] { display: none; }
.day-expansion label { display: block; color: #574c3b; font: 700 .65rem Arial, sans-serif; text-transform: uppercase; letter-spacing: .07em; }
.day-expansion textarea, .day-expansion input { display: block; width: 100%; margin: .5rem 0 .75rem; padding: .7rem; border: 1px solid #b6a586; border-radius: 0; background: #f8f2e7; color: #252219; font: .84rem/1.4 Arial, sans-serif; resize: vertical; }
.day-expansion small { font: .62rem Arial, sans-serif; color: #756b5a; }
.mini-save { border: 0; background: #29271d; color: #f9ebd2; cursor: pointer; padding: .65rem .9rem; font: 700 .62rem Arial, sans-serif; text-transform: uppercase; letter-spacing: .08em; }
.reading-footnote { display: flex; gap: .7rem; color: #675d4e; margin-top: 1.5rem; border: 1px solid #d7c8ad; padding: .75rem 1rem; }
.reading-footnote span { color: #9a7736; }
.reading-footnote p { margin: 0; font: .68rem/1.5 Arial, sans-serif; }
.gather { max-width: 1420px; margin: clamp(3.5rem, 7vw, 7rem) auto 0; display: grid; grid-template-columns: minmax(270px, .9fr) minmax(0, 1.1fr); gap: clamp(2rem, 6vw, 7rem); align-items: center; scroll-margin-top: 2rem; }
.gather-intro h2 { margin: 0; font-weight: 400; font-size: clamp(2.6rem, 5vw, 5rem); line-height: 1; letter-spacing: -.05em; }
.gather-intro p:not(.eyebrow) { max-width: 510px; color: #bfb5a3; font: .94rem/1.7 Arial, sans-serif; }
.gather-link { display: inline-block; color: var(--gold-light); border-bottom: 1px solid #a68553; text-decoration: none; padding: .4rem 0; margin-top: 1rem; font: 700 .7rem Arial, sans-serif; text-transform: uppercase; letter-spacing: .1em; }
.gather-card { background: #ede0c5; color: #2b271e; padding: clamp(1.3rem, 3vw, 2.6rem); box-shadow: var(--shadow); }
.card-overline { color: #925e31; font: 700 .63rem Arial, sans-serif; letter-spacing: .14em; }
.gather-card h3 { font-weight: 400; font-size: clamp(1.8rem, 3vw, 2.8rem); margin: .6rem 0 1.3rem; }
.gather-questions { border-block: 1px solid #c8b797; padding: .5rem 0; }
.gather-questions p { display: flex; gap: .9rem; align-items: baseline; margin: .85rem 0; }
.gather-questions span { color: #a7783f; font: 700 .62rem Arial, sans-serif; }
.gather-questions strong { font: 400 .84rem/1.5 Arial, sans-serif; }
.gather-card label { display: block; font: 700 .67rem Arial, sans-serif; letter-spacing: .08em; text-transform: uppercase; margin: 1.5rem 0 .6rem; }
.gather-card textarea { width: 100%; border: 1px solid #bda988; background: #f9f2e4; color: #29251d; padding: .85rem; resize: vertical; font: .87rem/1.55 Arial, sans-serif; }
.gather-actions { display: flex; align-items: center; gap: 1rem; margin: .9rem 0; }
.gather-actions button { border: 0; background: #29271d; color: #f8eddb; padding: .8rem 1.1rem; cursor: pointer; font: 700 .65rem Arial, sans-serif; text-transform: uppercase; letter-spacing: .08em; }
.gather-actions span { color: #3e7369; font: .67rem Arial, sans-serif; }
.gather-card small { color: #756a58; font: .68rem/1.5 Arial, sans-serif; }
.weekly-question-board { margin-top: 1.6rem; border-top: 1px solid #c8b797; padding-top: 1rem; }
.weekly-question-board h4 { margin: .3rem 0; font: 700 1.1rem/1.3 Arial, sans-serif; }
.weekly-question-board > p { margin: .4rem 0 1.2rem; color: #655b4b; font: .9rem/1.55 Arial, sans-serif; }
.weekly-question { margin: 1rem 0; padding: 1.15rem; background: #f8efdd; border: 1px solid #d1b994; }
.weekly-question-date { color: #765834; font: 700 .78rem/1.4 Arial, sans-serif; }
.weekly-question h5 { margin: .5rem 0 1rem; font: 600 1.12rem/1.4 Georgia, serif; }
.weekly-robin { border-left: 3px solid #a67839; padding: .1rem .8rem; }
.weekly-robin strong { font: 700 .75rem/1.4 Arial, sans-serif; color: #69492d; }
.weekly-robin p { margin: .5rem 0; font: .93rem/1.55 Arial, sans-serif; }
.weekly-question .weekly-answer-label { font-size: .8rem; margin: 1.1rem 0 .5rem; }
.weekly-question textarea { min-height: 6rem; font-size: 1rem; }
.weekly-question .community-pending { margin: .8rem 0 0; color: #655b4b; font: .8rem/1.5 Arial, sans-serif; }
.weekly-empty { font: .9rem/1.5 Arial, sans-serif; }
.walk-robin { border-left: 3px solid #b78745; padding: .2rem .8rem; background: rgba(198,149,76,.08); }

@media (max-width: 900px) {
  .map-swipe-note { display: block; max-width: 1520px; margin: -.35rem auto .75rem; color: #6f614c; font: .72rem Arial, sans-serif; }
  .top-links { gap: .7rem; }
  .top-links a { display: none; }
  .rhythm-heading, .gather { display: block; }
  .gather-card { margin-top: 2rem; }
  .hero { min-height: 780px; }
  .hero-stats { gap: 1.3rem; flex-wrap: wrap; }
  .hero-stats div { display: block; }
  .hero-stats span { display: block; margin-top: .25rem; }
  .map-intro { display: block; }
  .map-tools { margin-top: 1.3rem; }
  .search-box { width: 100%; }
  .canyon-layout { grid-template-columns: 1fr; min-height: 580px; overflow-x: auto; }
  .canyon-layout.land-active { overflow: visible; }
  .map-key { display: none; }
  .mobile-reading-threshold { display: grid; grid-template-columns: 115px minmax(0, 1fr) auto; align-items: center; gap: 1.1rem; max-width: 1520px; min-height: 112px; margin: 1rem auto 0; padding: .55rem 1rem .55rem .55rem; color: #f5ead3; text-decoration: none; background: #25271f; border: 1px solid #8b744e; }
  .mobile-room-image { display: block; align-self: stretch; min-height: 95px; background: url('assets/reading-room.webp') 62% center / cover; }
  .mobile-reading-threshold small { display: block; font: 700 .63rem Arial, sans-serif; letter-spacing: .13em; color: var(--gold-light); }
  .mobile-reading-threshold strong { display: block; margin: .4rem 0; font: 400 1.45rem Georgia,serif; }
  .mobile-reading-threshold em { display: block; font: .78rem Arial,sans-serif; font-style: normal; color: #d5c8af; }
  .mobile-reading-threshold b { color: var(--gold-light); font-size: 1.4rem; font-weight: 400; }
  .map-canvas { min-width: 850px; min-height: 590px; }
  .map-canvas.in-land { min-width: 0; min-height: 900px; }
  .land-scene[data-region="enoch"] .land-backdrop { object-position: 22% center; }
  .land-content { min-height: 900px; }
  .land-stops { grid-template-columns: repeat(2, minmax(0, 1fr)); max-height: 430px; }
  .map-shell.in-land .map-swipe-note, .map-shell.in-land .mobile-itinerary { display: none; }
  .map-node { width: 96px; }
  .map-node strong { font-size: .55rem; }
  .map-node small { font-size: .5rem; max-width: 96px; }
  .site-footer { display: block; }
  .site-footer p + p { margin-top: .6rem; }
}

@media (max-width: 620px) {
  .nav-trails { display: none; }
  .reading-room-scene { min-height: 690px; align-items: flex-end; padding: 1.4rem; background-image: linear-gradient(0deg,rgba(17,20,17,.98),rgba(17,20,17,.68) 58%,rgba(17,20,17,.08) 100%),url('assets/reading-room.webp'); background-position: 61% center; }
  .reading-back { margin-bottom: 2.2rem; }
  .reading-room-copy h2 { font-size: clamp(3rem, 12vw, 4.8rem); }
  .today-plaque { margin-top: 1.5rem; }
  .mobile-reading-threshold { grid-template-columns: 82px minmax(0, 1fr) auto; gap: .75rem; }
  .mobile-reading-threshold strong { font-size: 1.18rem; }
  .rhythm-layout { display: block; }
  .week-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .35rem; }
  .week-item { border: 1px solid rgba(255,255,255,.13); min-height: 85px; }
  .day-top { grid-template-columns: 55px minmax(0, 1fr); gap: .5rem; }
  .day-check { grid-column: 2; }
  .day-controls, .day-expansion { margin-left: calc(55px + .5rem); }
  .hero { min-height: 100svh; padding-bottom: 2rem; }
  .topbar { align-items: flex-start; }
  .brand small { max-width: 170px; }
  .privacy-badge { font-size: .56rem; }
  .hero-copy { padding: 2.8rem 0; }
  .hero h1 { font-size: clamp(2.8rem, 14vw, 4.3rem); }
  .hero-deck { font-size: .9rem; line-height: 1.55; }
  .map-shell { padding-left: .8rem; padding-right: .8rem; }
  .map-tools { display: block; }
  .clear-button { margin-top: .8rem; }
  .canyon-layout { min-height: 590px; }
  .map-canvas { min-height: 590px; }
  .map-canvas.in-land { min-height: 950px; }
  .land-content { min-height: 950px; }
  .day-study-panel { margin-left: 0; padding: 1rem; }
  .land-intro { margin-top: 2rem; }
  .land-intro h3 { font-size: clamp(2.8rem, 13vw, 4.4rem); }
  .land-intro p:last-child { font-size: .84rem; }
  .land-stops { grid-template-columns: 1fr; max-height: 590px; }
  .land-stop { min-height: 93px; }
  .trailhead { padding: .38rem .55rem .38rem .38rem; }
  .trailhead strong { font-size: .59rem; }
  .map-node { width: 83px; }
  .map-node .marker { width: 24px; height: 24px; }
  .map-node strong { font-size: .49rem; padding: .18rem .22rem; }
  .map-node small { display: none; }
  .mobile-itinerary { display: block; margin-top: 2.6rem; }
  .mobile-itinerary h3 { font-weight: 400; font-size: 1.8rem; }
  .itinerary-group { margin-bottom: 1.8rem; }
  .itinerary-group h4 { margin: 0 0 .55rem; font: 700 .62rem Arial, sans-serif; letter-spacing: .13em; text-transform: uppercase; color: #765027; }
  .itinerary-card { width: 100%; border: 0; border-top: 1px solid var(--line); padding: .8rem .2rem; background: transparent; display: flex; justify-content: space-between; gap: 1rem; text-align: left; cursor: pointer; }
  .itinerary-card strong { font-size: .95rem; }
  .itinerary-card span { color: #756b59; font: .68rem Arial, sans-serif; }
  .itinerary-card em { color: #6a604f; font: normal .68rem Arial, sans-serif; }
  .itinerary-card.explored strong::after { content: ' ✓'; color: #65784f; }
  .drawer-footer { align-items: stretch; }
  .drawer-footer button { flex: 1; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
  .scene-motion, .water-motion { display: none !important; }
}
/* Scripture reader stays part of the Reading Room's working surface. */
.bible-room { max-width: 1240px; margin: 4rem auto 1rem; padding: 2.5rem; background: #f4efe5; color: #26291f; border-radius: 1.4rem; }
.bible-room-heading { max-width: 52rem; margin-bottom: 1.8rem; }
.bible-room-heading h2 { font-size: clamp(2rem, 4vw, 3rem); margin: .35rem 0; }
.bible-room-heading p { font-size: 1rem; line-height: 1.6; }
.bible-room-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(17rem, 1fr); gap: 1.3rem; align-items: start; }
.bible-reader, .canon-shelf { background: #fffdf8; border: 1px solid #d8cdb9; border-radius: 1rem; padding: clamp(1rem, 2.5vw, 1.8rem); min-width: 0; }
.bible-reader h3, .canon-shelf h3 { font-size: 1.5rem; margin: 0 0 .5rem; }
.bible-source, .canon-shelf p, .bible-fallback, .bible-discovery p { font-size: 1rem; line-height: 1.55; }
.bible-room a { color: #315467; text-decoration: underline; text-underline-offset: .2em; }
.bible-chooser { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; margin: 1.2rem 0; }
.bible-chooser label { font-size: .9rem; font-weight: 700; }
.bible-chooser select { min-height: 2.8rem; max-width: 100%; padding: .5rem; border: 1px solid #9b917f; border-radius: .5rem; background: white; color: #26291f; font-size: 1rem; }
#bibleBook { min-width: 11rem; }
.bible-chooser button, .bible-discovery button { min-height: 2.8rem; padding: .55rem 1rem; border: 0; border-radius: .5rem; background: #315467; color: white; font-size: 1rem; cursor: pointer; }
.bible-shortcuts { display: flex; flex-wrap: wrap; gap: .5rem; }
.bible-shortcuts button { padding: .55rem .75rem; border: 1px solid #7d8b82; border-radius: 2rem; background: #edf2ed; color: #283a35; font-size: .9rem; cursor: pointer; }
.bible-room button:focus-visible, .bible-room select:focus-visible, .bible-room a:focus-visible { outline: 3px solid #b07432; outline-offset: 2px; }
.bible-status { min-height: 1.6rem; font-size: .9rem; color: #4e5047; }
.bible-verses { max-height: 32rem; overflow: auto; border-block: 1px solid #e2d9c9; padding: .6rem 0; }
.bible-verses h4 { font-size: 1.3rem; margin: .6rem 0 1rem; }
.bible-verse { display: flex; align-items: start; gap: .7rem; font-size: 1rem; line-height: 1.7; margin: 0; padding: .25rem .5rem; }
.bible-verse sup { font-size: .8rem; color: #715b3f; min-width: 1.5rem; top: 0; }
.bible-verse-selected { background: #f4e5bf; border-radius: .3rem; }
.bible-verse-number { border: 0; background: transparent; color: #715b3f; font: 700 .85rem/1.8 Arial, sans-serif; min-width: 1.5rem; padding: 0; cursor: pointer; align-self: start; }
.bible-verse-number:hover, .bible-verse-number[aria-pressed="true"] { color: #234b5b; text-decoration: underline; }
.bible-ask-form { display: grid; gap: .65rem; margin: 1.2rem 0; padding: 1rem; border-radius: .75rem; background: #f5eddb; }
.bible-ask-form h4 { margin: 0; font: 400 1.35rem/1.3 Georgia, serif; }
.bible-ask-form p { margin: 0; font-size: .9rem; line-height: 1.5; }
.bible-ask-form label { font-weight: 700; }
.bible-ask-form textarea { width: 100%; padding: .7rem; border: 1px solid #a99b7f; border-radius: .35rem; background: #fffdf8; color: #25251e; font: 1rem/1.5 Arial, sans-serif; resize: vertical; }
.bible-ask-form button[type="submit"] { justify-self: start; border: 0; border-radius: .4rem; padding: .7rem .9rem; background: #315467; color: white; font: 700 .95rem/1.3 Arial, sans-serif; cursor: pointer; }
.bible-ask-form button:disabled { opacity: .6; cursor: wait; }
.bible-ask-conversation { display: grid; gap: .6rem; }
.bible-ask-conversation article { padding: .75rem; border-left: 3px solid #719589; background: #fffdf8; }
.bible-ask-conversation .bible-answer { white-space: pre-wrap; margin-top: .4rem; }
.bible-ask-form .bible-ask-note { font-size: .8rem; color: #5f604f; }
.canon-book { margin: 1.2rem 0; border-top: 1px solid #ddd0bc; padding-top: .7rem; }
.canon-book h4 { font-size: 1.1rem; margin: .4rem 0; }
.canon-note { color: #4e5047; }
.bible-discovery { border-top: 1px solid #cbbca7; margin-top: 1.5rem; padding-top: 1.2rem; }
.bible-discovery strong { font-size: 1.15rem; }
.drawer-read-bible { display: inline-block; margin-top: .8rem; padding: .55rem .8rem; border: 1px solid #d7c48d; border-radius: .45rem; color: #f5e6be; background: rgba(0,0,0,.25); font-size: .9rem; cursor: pointer; }
.drawer-read-bible[hidden] { display: none; }
.study-walk { margin-top: 1.5rem; padding-top: 1.4rem; border-top: 1px solid rgba(92,74,43,.3); }
.study-walk h4 { font-size: 1.35rem; margin: 0 0 .65rem; }
.walk-intro { font-size: 1rem; line-height: 1.6; max-width: 52rem; }
.walk-steps { padding: 0; margin: 1.3rem 0; list-style: none; display: grid; gap: .9rem; }
.walk-step { border: 1px solid #d8ccb5; border-left: 4px solid #977a43; border-radius: .6rem; padding: 1.1rem 1.2rem; background: #fffdf8; color: #29291f; }
.walk-number { display: block; color: #72572d; font-size: .8rem; font-weight: 800; letter-spacing: .08em; }
.walk-step h5 { font-size: 1.2rem; margin: .25rem 0; }
.walk-reference { display: block; font-size: .9rem; margin: 0 0 1rem; color: #4d594d; }
.walk-step strong { display: block; font-size: .9rem; margin-top: .8rem; }
.walk-step p { font-size: 1rem; line-height: 1.6; margin: .3rem 0 .8rem; }
.walk-turn { border-left: 2px solid #b8a982; padding-left: .8rem; }
.walk-passages { display: flex; flex-wrap: wrap; gap: .5rem; }
.walk-read { background: #315467; color: white; border: 0; border-radius: .45rem; font-size: .9rem; padding: .6rem .8rem; cursor: pointer; }
.walk-read:focus-visible { outline: 3px solid #b07432; outline-offset: 2px; }
.walk-own-label { display: block; margin-top: 1rem; font-size: .9rem; font-weight: 700; }
.walk-own-label textarea { display: block; width: 100%; box-sizing: border-box; margin-top: .45rem; padding: .7rem; border: 1px solid #9c998d; border-radius: .45rem; background: white; color: #29291f; font: 1rem/1.5 Arial, sans-serif; resize: vertical; }
.walk-own-label textarea:focus-visible { outline: 3px solid #b07432; outline-offset: 2px; }
.walk-synthesis { padding: 1.2rem; background: #e9e0cc; border-radius: .6rem; }
.walk-synthesis strong { font-size: 1.1rem; }
.walk-synthesis p { font-size: 1rem; line-height: 1.6; }
.walk-open { font-style: italic; }
.study-read-passage { display: inline-block; margin: .4rem 0 1rem; padding: .55rem .8rem; border: 0; border-radius: .4rem; background: #315467; color: white; font-size: .9rem; cursor: pointer; }
.daily-path { margin: .4rem 0 1.2rem; }
.daily-path-steps { margin: .6rem 0; padding-left: 1.4rem; }
.daily-path-steps li { padding: .25rem 0 .5rem .35rem; color: #302d25; font: 1rem/1.6 Arial, sans-serif; }
.daily-path-steps li::marker { color: #72572d; font-weight: 700; }
.daily-path-note { display: block; color: #584f41; font-size: .85rem; line-height: 1.5; }
.study-read-passage:focus-visible { outline: 3px solid #b07432; outline-offset: 2px; }
@media (max-width: 760px) { .bible-room { margin: 2rem 1rem; padding: 1.25rem; } .bible-room-grid { grid-template-columns: 1fr; } .bible-chooser { align-items: stretch; } .bible-chooser label { width: 100%; } }
/* War Room: a quiet, searchable prayer workspace beside the reading path. */
.war-room { padding: clamp(2rem,5vw,5rem) clamp(1rem,4vw,4rem); background: #18242b; color: #f6f1e6; }
.war-room-intro, .war-room-workspace { max-width: 1240px; margin-inline: auto; }
.war-room-intro { padding-bottom: 1.7rem; }
.war-room-intro > a { color: #e9cb8e; font-size: .95rem; }
.war-room .eyebrow { color: #d8b879; }
.war-room h2 { font-size: clamp(2.5rem,6vw,5rem); margin: .25rem 0; font-weight: 400; }
.war-room-intro > p:last-child { font-size: 1.1rem; line-height: 1.65; max-width: 50rem; }
.war-room-workspace { display: grid; grid-template-columns: minmax(0,1.7fr) minmax(18rem,1fr); gap: 1.3rem; align-items: start; }
.war-search-panel, .war-prayers { padding: clamp(1rem,2.5vw,2rem); border: 1px solid #bdac8c; border-radius: 1rem; background: #f8f2e6; color: #252c2b; min-width: 0; }
.war-search-panel > label, .war-prayers label { display: block; font-size: 1rem; font-weight: 700; margin-bottom: .55rem; }
.war-search-panel input, .war-prayers input, .war-prayers textarea { width: 100%; box-sizing: border-box; min-height: 2.9rem; border: 1px solid #887d6e; border-radius: .5rem; padding: .7rem; font: 1rem/1.5 Arial,sans-serif; color: #232b2b; background: #fff; }
.war-search-panel input { font-size: 1.1rem; }
#prayerResultCount { color: #4b5d59; font-size: .9rem; }
.war-filter { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1rem 0; }
.war-filter button { border: 1px solid #8c927f; border-radius: 2rem; padding: .55rem .85rem; background: transparent; color: #263431; cursor: pointer; font-size: .9rem; }
.war-filter button.active { background: #263f42; color: white; }
.war-results { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .85rem; max-height: 42rem; overflow: auto; }
.war-result, #recordedPrayers article, #myWarPrayers article { padding: 1rem; background: #fffdf7; border: 1px solid #d7cbb6; border-radius: .65rem; }
.war-result small, #recordedPrayers small { font-size: .75rem; color: #735b37; font-weight: 700; letter-spacing: .08em; }
.war-result h3 { font-size: 1.28rem; margin: .3rem 0; }
.war-result strong { color: #345c62; font-size: .95rem; }
.war-result p, .war-prayers p { font-size: 1rem; line-height: 1.5; }
.war-result button, .war-prayers form button, .war-export { border: 0; border-radius: .4rem; padding: .65rem .9rem; background: #315467; color: #fff; font-size: .95rem; cursor: pointer; }
.war-search-panel > h3 { margin: 1.6rem 0 .4rem; font-size: 1.35rem; }
.war-search-panel > p { font-size: 1rem; line-height: 1.5; }
.war-result h4 { margin: 0; color: #345c62; font-size: 1.05rem; }
.war-more { margin-top: 1rem; border: 0; border-radius: .4rem; padding: .7rem 1rem; background: #315467; color: #fff; font-size: 1rem; cursor: pointer; }
.war-prayers h3 { font-size: 1.6rem; margin: 0; }
.war-prayers h4 { font-size: 1.15rem; margin: 1.2rem 0 .5rem; }
#recordedPrayers, #myWarPrayers { display: grid; gap: .55rem; }
#recordedPrayers article p { margin: .2rem 0 0; }
.war-prayers form { margin-top: 1.4rem; padding-top: 1rem; border-top: 1px solid #c9bea9; }
.war-prayers form label { margin-top: .8rem; }
.war-prayers form button { margin-top: .9rem; }
#myWarPrayers h5 { font-size: 1rem; margin: 0; }
#myWarPrayers p { white-space: pre-wrap; overflow-wrap: anywhere; }
#myWarPrayers button { background: transparent; color: #713c30; border: 1px solid #a98475; border-radius: .3rem; padding: .4rem .6rem; cursor: pointer; }
.war-export { margin-top: 1rem; background: #51604a; }
.war-room button:focus-visible, .war-room input:focus-visible, .war-room textarea:focus-visible, .war-room a:focus-visible { outline: 3px solid #c1883d; outline-offset: 2px; }
.war-threshold { margin-top: .7rem; }
@media (max-width: 800px) { .war-room-workspace { grid-template-columns: 1fr; } .war-results { max-height: none; } }
@media (max-width: 540px) { .war-results { grid-template-columns: 1fr; } }
/* Page navigation keeps rooms separate while retaining the Canyon's study anchors. */
[hidden] { display: none !important; }
.global-nav { background: #17160f; color: #f4ead6; padding: 1rem clamp(1rem,4vw,4.5rem); position: relative; z-index: 20; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .8rem 1rem; }
.global-nav .brand { grid-column: 1; min-width: 0; }
.global-nav .account-entry { grid-column: 2; grid-row: 1; justify-self: end; align-self: center; }
.global-nav .top-links { grid-column: 1 / -1; flex-wrap: wrap; gap: .7rem 1.2rem; }
.global-nav a[aria-current="page"] { color: #f3d18b; text-decoration: underline; text-underline-offset: .4rem; }
.hero { min-height: min(42rem,85vh); padding-top: 0; }
.bible-page { background: #e8deca; padding: clamp(2rem,5vw,5rem) 1rem; min-height: 75vh; }
.bible-page .bible-room { margin: 0 auto; }
.gather-page { background: #28261b; color: #f5ead3; min-height: 75vh; padding: clamp(2rem,5vw,5rem) clamp(1rem,5vw,5.6rem); }
.gather-page .gather { margin: 0 auto; }
.war-room, .about-page, .rhythm-shell, .map-shell { min-height: 75vh; }
.about-page { background: #e7ddc8; color: #28291f; padding: clamp(3rem,7vw,7rem) clamp(1rem,5vw,5rem); }
.about-inner { max-width: 1120px; margin: auto; }
.about-page .eyebrow { color: #66502c; }
.about-page h2 { font-size: clamp(2.7rem,6vw,5.5rem); font-weight: 400; letter-spacing: -.045em; line-height: 1.05; margin: .7rem 0 2.5rem; }
.about-page h2 em { color: #526454; font-weight: 400; }
.about-story { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.5rem,5vw,5rem); border-top: 1px solid #aa9d84; padding-top: 2rem; }
.about-story h3 { font-size: 1.6rem; font-weight: 400; margin: 0 0 1rem; }
.about-story p, .about-close { font: 1.08rem/1.8 Arial,sans-serif; }
.about-purpose { border-left: 2px solid #a38b60; padding-left: clamp(1rem,3vw,2.5rem); }
.about-page blockquote { margin: 3rem 0 1.5rem; padding: 1.5rem 2rem; border-left: 4px solid #806a3b; background: #f6efdf; font-size: clamp(1.35rem,2.8vw,2rem); line-height: 1.4; }
.about-close { max-width: 46rem; }
.about-enter { display: inline-block; background: #344b48; color: #fff; padding: .85rem 1.2rem; margin-top: 1rem; text-decoration: none; }
.about-copyright { margin-top: 2rem; font: .9rem/1.5 Arial,sans-serif; opacity: .78; }
.about-page a:focus-visible, .global-nav a:focus-visible { outline: 3px solid #c1883d; outline-offset: 3px; }
@media (max-width: 760px) { .about-story { grid-template-columns: 1fr; } .about-purpose { border-left: 0; border-top: 2px solid #a38b60; padding: 1.5rem 0 0; } .global-nav { align-items: flex-start; } }
/* Trail choices and study stops live in one ledger beside each clear landscape. */
.canyon-layout, .canyon-layout.land-active { display: grid; grid-template-columns: minmax(285px,340px) minmax(0,1fr); }
.map-key, .land-active .map-key { display: block; max-height: 900px; overflow-y: auto; }
.map-key .key-label { margin-bottom: 1.2rem; }
.legend-all { border-bottom: 1px solid rgba(255,255,255,.16); margin-bottom: .5rem; }
.legend-item[hidden] { display: none !important; }
#trailLegend .legend-item { min-height: 2.7rem; font-size: .86rem; }
#trailLegend .legend-count { font-size: .76rem; }
#landSidebar .return-canyon { color: #f5ead3; margin-bottom: 1.2rem; }
#landSidebar .land-intro { margin: 0; }
#landSidebar .land-intro h3 { font-size: clamp(1.8rem,3vw,2.7rem); line-height: 1.08; }
#landSidebar .land-intro p:last-child { font-size: .9rem; }
#landSidebar .land-stops { display: grid; grid-template-columns: 1fr; max-height: none; overflow: visible; margin: 1rem 0; padding: 0; }
#landSidebar .land-stop { min-height: 0; }
#landSidebar .land-personal-button { margin-top: 1rem; }
.matthew-parables { margin: 1.6rem 0 1rem; padding: 1.15rem; border: 1px solid rgba(237,205,143,.5); background: rgba(28,37,30,.85); color: #f6ecd8; }
.matthew-parables h4 { margin: 0; color: #e5c780; font: 400 1.4rem/1.2 Georgia,serif; }
.matthew-parables p { margin: .5rem 0 .9rem; color: #e5d7bc; font: .83rem/1.5 Arial,sans-serif; }
#matthewParableLinks { display: grid; gap: 1rem; max-height: 36rem; overflow-y: auto; }
.parable-group h5 { margin: .2rem 0 .5rem; color: #e5c780; font: 700 .9rem/1.4 Arial,sans-serif; }
.parable-group-links { display: grid; gap: .4rem; }
#matthewParableLinks button { display: flex; align-items: baseline; justify-content: space-between; gap: .6rem; width: 100%; border: 1px solid rgba(237,205,143,.3); padding: .7rem; background: rgba(10,22,18,.55); color: #f7efdc; text-align: left; cursor: pointer; }
#matthewParableLinks button:hover, #matthewParableLinks button:focus-visible { border-color: #e5c780; background: #344d3b; }
#matthewParableLinks strong { min-width: 0; font: 400 .98rem/1.25 Georgia,serif; }
#matthewParableLinks span { flex: none; color: #e5c780; font: 700 .85rem/1.4 Arial,sans-serif; }
#matthewParableLinks small { display: block; color: #ded7c5; font: 400 .8rem/1.4 Arial,sans-serif; }
.map-canvas.in-land > .land-scene { position: absolute; inset: 0; }
.mobile-itinerary, .mobile-reading-threshold { display: none !important; }
@media (max-width: 900px) {
  .canyon-layout, .canyon-layout.land-active { display: grid; grid-template-columns: 1fr; overflow: visible; }
  .map-key, .land-active .map-key { display: block; max-height: none; overflow: visible; }
  .map-canvas, .map-canvas.in-land { min-width: 0; min-height: min(65vw,650px); }
  .map-swipe-note { margin-top: .2rem; }
}
@media (max-width: 620px) { .map-canvas, .map-canvas.in-land { min-height: 62vw; } }
@media (max-width: 620px) { #matthewParableLinks { max-height: none; } #matthewParableLinks button { align-items: flex-start; flex-direction: column; gap: .2rem; } }
.land-scene::before { display: none; }
@media (max-width: 900px) {
  .map-canvas { order: -1; }
  .map-swipe-note { display: none; }
}
/* Water stays visible over the upper Canyon view and the opened landscapes. */
.hero-water-motion { z-index: 1; opacity: .95; mix-blend-mode: screen; }
.overview-water-motion { opacity: .9; }
.land-scene .water-motion { z-index: 1; opacity: .9; mix-blend-mode: screen; }
.land-scene .land-motion { z-index: 2; }
/* Readable source text and notes stay above the decorative landscape. */
.subject-entry { border: 1px solid #746247; padding: .75rem .9rem; background: #243d39; color: #fff0d5; cursor: pointer; font: 700 .76rem/1.25 Arial,sans-serif; white-space: nowrap; }
.subject-entry:hover { background: #365b54; }
.pin-scripture { margin: 1rem 0; padding: 1rem; background: #fffcf2; border: 1px solid #cbbb9c; border-left: 3px solid #356e73; }
.pin-citation-choices { display: flex; flex-wrap: wrap; gap: .45rem; margin-bottom: 1rem; }
.pin-citation-choices button { border: 1px solid #8da19a; border-radius: 100px; padding: .45rem .7rem; background: #edf2e9; color: #274940; font: 700 .82rem/1.3 Arial,sans-serif; cursor: pointer; }
.pin-citation-choices button[aria-pressed="true"] { background: #274940; color: #fff9e9; }
.pin-scripture h4 { margin: 0 0 .65rem; color: #255a60; font: 700 .76rem/1.35 Arial,sans-serif; letter-spacing: .04em; }
.pin-scripture-verses { max-height: 23rem; overflow: auto; padding-right: .5rem; }
.pin-scripture-verses p { margin: 0 0 .7rem; font: 1rem/1.6 Georgia,serif; color: #292a25; }
.pin-scripture-verses sup { display: inline-block; min-width: 1.8rem; color: #2d7478; font: 700 .7rem/1 Arial,sans-serif; }
.pin-scripture-status { color: #555144; }
.pin-continue { border: 0; border-bottom: 1px solid #2d7478; padding: .5rem 0; background: transparent; color: #225f63; cursor: pointer; font: 700 .8rem Arial,sans-serif; }
.pin-study-summary { padding: .85rem 0 1rem; border-top: 1px solid #d7c8ae; }
.pin-study-summary > strong { display: block; margin-bottom: .35rem; color: #7d512b; font: 700 .65rem/1.4 Arial,sans-serif; letter-spacing: .12em; }
@media (max-width: 760px) { .map-tools { flex-wrap: wrap; width: 100%; } .map-tools .search-box { width: 100%; } .subject-entry { flex: 1; white-space: normal; } }
@media (max-width: 900px) { .global-nav .top-links a { display: inline-flex; } .global-nav .top-links { width: 100%; } }
@media (max-width: 620px) { .map-tools { display: flex; } .map-swipe-note { display: block; } }

/* Distinct settings for the daily kitchen and weekly ranch table. */
.reading-room-scene { background-image: linear-gradient(90deg,rgba(17,20,17,.94) 0%,rgba(22,26,22,.78) 38%,rgba(20,24,20,.08) 85%),url('assets/kitchen-window.webp'); }
.gather-page { background: linear-gradient(90deg,rgba(22,25,20,.88),rgba(22,25,20,.7)),url('assets/weekly-table.webp') center/cover fixed; }
.gather-page { background-image:linear-gradient(90deg,rgba(22,25,20,.72),rgba(22,25,20,.3)),url('assets/weekly-table.webp'); }
.gather-page .gather { align-items:start; }
.gather-card { background:rgba(249,240,218,.96); border:8px solid #6b4930; border-radius:1.1rem; box-shadow:0 1rem 0 #3d2b20,0 1.5rem 0 #806044,0 2rem 3rem rgba(0,0,0,.5); }
.gather-week-picker { display:flex; flex-wrap:wrap; gap:.4rem; margin:0 0 1.5rem; }
.gather-week-picker button { border:1px solid #8d785a; background:#f4e6c8; color:#433624; padding:.6rem .8rem; cursor:pointer; border-radius:2rem; }
.gather-week-picker button[aria-pressed="true"] { background:#51402c; color:#fff3d7; }
.gather-summary { line-height:1.55; color:#5b4b38; }
.weekly-question { border-radius:.4rem; box-shadow:0 3px 0 #d1b994; }
.weekly-day-question { font:600 1rem/1.5 Georgia,serif; color:#3e493c; }
.weekly-read { border:1px solid #567267; background:#f1f6eb; color:#294d42; padding:.6rem .8rem; cursor:pointer; }
.war-room { background: radial-gradient(circle at 80% 5%,rgba(174,119,51,.28),transparent 25%),linear-gradient(135deg,#19282c,#263126 70%,#17242a); }
.war-room-intro { border-left: 4px solid #d3aa69; padding-left: 1.25rem; }
.war-room-scriptures { display:flex; flex-wrap:wrap; gap:.6rem; margin:1rem 0; }
.war-room-scriptures button { padding:.55rem .8rem; color:#f6f1e6; border:1px solid #c6a36a; background:#32433e; border-radius:.45rem; cursor:pointer; }
#recordedPrayers details { padding:1rem; background:#fffdf7; border:1px solid #d7cbb6; border-radius:.65rem; }
#recordedPrayers summary { cursor:pointer; font-weight:700; line-height:1.5; }
#recordedPrayers details p { white-space:pre-wrap; }
@media (max-width:690px) { .reading-room-scene { background-image:linear-gradient(0deg,rgba(17,20,17,.96),rgba(17,20,17,.7) 65%,rgba(17,20,17,.12)),url('assets/kitchen-window.webp'); } .gather-page { background-attachment:scroll; } }
/* War Room threshold, prayer wall, and separate testimony choice. */
.war-scene { position:relative; max-width:1240px; height:clamp(19rem,39vw,32rem); margin:0 auto 1.5rem; background:linear-gradient(90deg,transparent 40%,rgba(10,20,25,.3)),url('assets/war-room.webp') center/cover; border:1px solid rgba(223,187,122,.45); box-shadow:0 20px 50px rgba(0,0,0,.28); }
.war-pinned-wall { position:absolute; top:5%; right:3%; width:65%; max-height:78%; overflow:auto; padding:.8rem; background:rgba(20,25,20,.82); color:#fff3d7; border-radius:.3rem; }
.war-pinned-wall h3 { margin:0 0 .7rem; font:1.25rem/1.3 Georgia,serif; }
.war-pinned-wall p,.war-pinned-wall summary { font-size:.875rem; line-height:1.5; }
.war-pinned-wall summary { cursor:pointer; padding:.5rem 0; }
.war-wall-scriptures,#sharedPrayerWall { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,11rem),1fr)); gap:.6rem; }
#privatePrayerWall { display:contents; }
.war-wall-scriptures button,#sharedPrayerWall button,.war-door-scripture { border:1px solid #d6b979; background:rgba(45,37,25,.95); color:#fff3d7; cursor:pointer; font:1rem/1.3 Georgia,serif; padding:.8rem; text-shadow:0 1px 2px #1a160e; overflow-wrap:anywhere; }
.war-wall-scriptures button small,#sharedPrayerWall button small { display:block; font-size:.875rem; margin-top:.3rem; }
.war-wall-scriptures button:focus-visible,#sharedPrayerWall button:focus-visible { outline:3px solid #fff3d7; outline-offset:2px; }
#prayerPinDialog { width:min(92vw,40rem); max-height:85vh; overflow:auto; padding:1.2rem; border:2px solid #d6b979; background:#fff9ec; color:#252b2a; }
#prayerPinDialog::backdrop { background:rgba(0,0,0,.65); }
#prayerPinDialog > form { text-align:right; }
#prayerPinDialog > form button { padding:.6rem .9rem; font-size:1rem; cursor:pointer; }
.war-door-scripture { position:absolute; bottom:4%; left:4%; max-width:min(60%,31rem); font-size:.86rem; }
@media(max-width:690px) { .war-scene { background-position:45% center; height:32rem; } .war-pinned-wall { width:90%; right:3%; box-sizing:border-box; } .war-door-scripture { max-width:85%; font-size:.875rem; } }
.war-door-verse { max-width:1240px; margin:0 auto 1.2rem; padding:.8rem 1.1rem; border-left:3px solid #d9ad69; color:#f6e8ca; font:1rem/1.6 Georgia,serif; }
#recordedPrayers details img { display:block; width:100%; max-height:36rem; object-fit:contain; margin-top:.8rem; background:#f5ecda; }
#recordedPrayers details a { display:inline-block; margin-top:.7rem; color:#285c64; font-weight:700; }
#recordedPrayers details small { display:block; margin-top:.6rem; }
#recordedPrayers details p { line-height:1.7; overflow-wrap:anywhere; }
.community-board { max-width:1240px; margin:2rem auto 0; padding:clamp(1rem,3vw,2rem); border:1px solid #bba67d; background:#f5ecd8; color:#242b29; }
.community-board h3 { font:400 clamp(1.8rem,4vw,2.6rem)/1.2 Georgia,serif; margin:0 0 .7rem; }
.community-board > p { max-width:48rem; line-height:1.6; }
#privatePrayerWall,#sharedPrayerWall,#privateTestimonies,#sharedTestimonies { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr)); gap:1rem; }
.community-card { padding:1.1rem; border:1px solid #b5a789; background:#fffdf5; color:#252b2a; overflow-wrap:anywhere; }
.community-card h4 { font-size:1.2rem; margin:0 0 .45rem; }
.community-card small { color:#53665d; }
.community-card p { white-space:pre-wrap; line-height:1.6; }
.community-card .community-scripture { font-weight:700; color:#315467; }
.community-actions { display:flex; gap:.6rem; flex-wrap:wrap; }
.community-actions button,.testimony-page form button { padding:.65rem .9rem; border:0; background:#315467; color:#fff; cursor:pointer; font-size:.95rem; }
.community-actions button:last-child { background:#725345; }
.shared-board { margin-top:1.5rem; padding:1rem; border:1px solid #b5a789; }
.shared-board summary { cursor:pointer; font-weight:700; }
.shared-board > div { margin-top:1rem; }
.testimony-page { padding:clamp(2rem,5vw,5rem) 1rem; min-height:75vh; background:linear-gradient(145deg,#e8dcc0,#f5eee0); color:#28302a; }
.testimony-inner { max-width:1050px; margin:auto; }
.testimony-inner > a { color:#315467; }
.testimony-page h2 { font:400 clamp(2.5rem,6vw,5rem)/1.1 Georgia,serif; margin:.5rem 0; }
.testimony-page h3 { font-size:1.5rem; }
.testimony-page form { display:grid; max-width:46rem; gap:.5rem; padding:1.5rem; background:#fffaf0; border:1px solid #b9a985; }
.testimony-page label { font-weight:700; margin-top:.5rem; }
.testimony-page input,.testimony-page textarea { padding:.75rem; border:1px solid #958b78; font:1rem/1.5 Arial,sans-serif; width:100%; box-sizing:border-box; }
.testimony-page form button { justify-self:start; margin-top:.6rem; }
.trail-suggestions { margin:1rem 0; padding:1rem; border:1px solid #a3a68d; background:#faf4e8; }
.trail-suggestions h3 { margin:.2rem 0; font-size:1.2rem; }
.trail-suggestions p { margin:.3rem 0 .8rem; }
.trail-scripture-search { margin: 1rem 0; padding: 1rem; border: 1px solid #a3a68d; background: #faf4e8; }
.trail-scripture-search label { display: block; font: 700 1rem/1.4 Arial,sans-serif; margin-bottom: .5rem; }
.trail-scripture-search > div:first-of-type { display: flex; gap: .5rem; flex-wrap: wrap; }
.trail-scripture-search input { flex: 1 1 13rem; min-width: 0; padding: .7rem; font-size: 1rem; }
.trail-scripture-search button { padding: .7rem .9rem; border: 0; background: #2b4941; color: #fff7e4; cursor: pointer; font-size: .95rem; }
.trail-scripture-search p { line-height: 1.5; }
.trail-scripture-results { display: grid; gap: .7rem; max-height: 24rem; overflow: auto; }
.trail-scripture-results article { padding: .8rem; border: 1px solid #c8baa0; background: #fffdf7; }
.trail-scripture-results article p { margin: .4rem 0 .7rem; font: 1rem/1.5 Georgia,serif; }
#trailSuggestionList { display:grid; gap:.45rem; }
#trailSuggestionList button { padding:.7rem; border:1px solid #789385; background:#edf2e7; color:#253d35; text-align:left; font-size:1rem; cursor:pointer; }
.later-discoveries { max-width:1420px; margin:2rem auto 0; padding:clamp(1rem,3vw,2rem); background:#e4dcc6; color:#2b342e; border-left:4px solid #756646; }
.later-discoveries h2 { font:400 1.8rem Georgia,serif; margin:0 0 1rem; }
.later-trail-card { max-width:55rem; }
.later-trail-card p { line-height:1.7; }
.later-trail-card button { padding:.65rem .9rem; border:0; background:#315467; color:white; cursor:pointer; }
.study-final-message { margin:1rem 0; padding:1rem; border-left:3px solid #ad7e44; background:#faf3df; }
.study-final-message strong { font-size:.8rem; letter-spacing:.06em; }
.study-final-message p { font:1.3rem/1.4 Georgia,serif; margin:.5rem 0 0; }
.study-poster { margin: .8rem 0 1.2rem; }
.study-poster summary { cursor: pointer; font: 700 1rem/1.5 Arial,sans-serif; color: #385d68; padding: .5rem 0; }
.study-poster img { display: block; width: min(100%, 680px); height: auto; margin: .75rem auto; border: 1px solid #bda988; }
.account-dialog { width:min(760px,calc(100vw - 24px)); max-height:90vh; border:1px solid #ad9569; border-radius:18px; padding:0; color:#24251d; background:#f8f3e6; box-shadow:0 20px 80px #1119; }
.account-dialog::backdrop { background:#101916bc; }
.account-panel { padding:clamp(20px,4vw,38px); position:relative; overflow:auto; max-height:90vh; }
.account-panel h2 { margin:8px 0 12px; font-family:Georgia,serif; font-size:clamp(1.8rem,4vw,2.5rem); }
.account-close { position:absolute; top:12px; right:14px; border:0; background:transparent; font-size:2rem; cursor:pointer; color:#24251d; }
.account-forms { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin:20px 0; }
.account-forms form { display:grid; gap:12px; padding:20px; border:1px solid #c9ba9b; border-radius:12px; background:#fffaf0; }
.account-forms h3 { margin:0; font-family:Georgia,serif; }
.account-forms label { display:grid; gap:5px; font-size:1rem; }
.account-forms input { width:100%; padding:10px; font:inherit; border:1px solid #a59b85; border-radius:7px; }
.account-forms button, #accountSignOut { padding:11px 16px; border:0; border-radius:7px; background:#304a3d; color:white; font:inherit; cursor:pointer; }
.account-forms button:disabled { opacity:.6; }
#accountStatus { min-height:1.5em; }
.account-feedback { margin:0; color:#304a3d; line-height:1.45; }
.account-feedback:empty { display:none; }
.account-forms .account-text-button,.account-reset .account-text-button { background:transparent; color:#304a3d; text-decoration:underline; text-align:left; padding:5px 0; }
.account-reset { display:grid; gap:12px; padding:20px; margin:20px 0; border:1px solid #c9ba9b; border-radius:12px; background:#fffaf0; }
.account-reset[hidden] { display:none; }
.account-reset h3,.account-reset p { margin:0; }
.account-reset h3 { font:700 1.6rem Georgia,serif; }
.account-reset label { display:grid; gap:5px; }
.account-reset input { width:100%; padding:10px; font:inherit; border:1px solid #a59b85; border-radius:7px; }
.account-reset button { padding:11px 16px; border:0; border-radius:7px; background:#304a3d; color:white; font:inherit; cursor:pointer; }
.account-reset button:disabled { opacity:.6; }
.account-profile { padding:20px; border:1px solid #c9ba9b; border-radius:12px; background:#fffaf0; }
.account-profile h3 { margin:0 0 8px; font:700 1.6rem Georgia,serif; }
.account-private-note { margin-top:0; }
.account-profile label { display:block; margin-bottom:7px; }
.profile-name-row,.profile-destinations { display:flex; flex-wrap:wrap; gap:10px; }
.profile-name-row input { flex:1 1 220px; min-width:0; padding:10px; font:inherit; border:1px solid #a59b85; border-radius:7px; }
.account-profile button,.profile-destinations a { display:inline-block; padding:11px 16px; border:0; border-radius:7px; background:#304a3d; color:white; font:inherit; text-decoration:none; cursor:pointer; }
.account-profile button:disabled { opacity:.6; }
.profile-destinations { margin:16px 0; }
#accountSignOut { background:transparent; border:1px solid #304a3d; color:#304a3d; }
#profileNameStatus { min-height:1.4em; }
@media (max-width:650px) { .account-forms { grid-template-columns:1fr; } }
.account-entry { min-height:44px; border:1px solid #a58955; border-radius:.4rem; padding:.55rem .85rem; background:transparent; color:#f5e2b7; font:700 .85rem Arial,sans-serif; cursor:pointer; white-space:nowrap; }
.account-entry:hover { background:#302a1d; color:white; }
@media (max-width:620px) {
  .global-nav { gap:1rem .5rem; }
  .global-nav .brand { gap:.5rem; }
  .global-nav .brand-mark { width:2.3rem; height:2.3rem; flex:none; }
  .global-nav .brand strong { font-size:clamp(.82rem,4.2vw,1rem); }
  .global-nav .brand small { font-size:.64rem; }
  .global-nav .account-entry { padding:.5rem .7rem; }
}

/* The Cave keeps the source language beside the verse trail. */
.deep-dive-page { min-height:75vh; color:#f6ecd8; background:linear-gradient(120deg,rgba(17,22,25,.96),rgba(19,32,32,.88) 55%,rgba(18,21,23,.96)),url('assets/regions/jeremiah.webp') center/cover fixed; padding:clamp(2rem,5vw,5rem) clamp(1rem,5vw,5rem); }
.deep-dive-shell { max-width:1420px; margin:auto; }
.deep-dive-intro { max-width:55rem; margin-bottom:2rem; }
.deep-dive-intro > a { color:#f2d394; }
.deep-dive-intro .eyebrow { margin:1.5rem 0 .7rem; }
.deep-dive-intro h2 { font:400 clamp(2.7rem,6vw,5.3rem)/1.05 Georgia,serif; margin:0 0 1rem; letter-spacing:-.04em; }
.deep-dive-intro > p:last-child { font:1.07rem/1.65 Arial,sans-serif; color:#e4dbc8; }
.dive-workspace { display:grid; grid-template-columns:minmax(300px,.9fr) minmax(0,1.1fr); gap:clamp(1rem,3vw,2.5rem); align-items:start; }
.dive-search,.dive-detail { background:#f8f0de; color:#28291f; border:1px solid #9e825b; border-radius:.45rem; padding:clamp(1rem,3vw,2rem); box-shadow:0 1.5rem 3rem #0b111475; }
.dive-search form { display:grid; gap:.6rem; }
.dive-search label { font:700 .9rem Arial,sans-serif; }
.dive-search input,.dive-search select { border:1px solid #9e937e; border-radius:.3rem; background:white; padding:.7rem; min-height:44px; font:1rem Arial,sans-serif; color:#24251f; width:100%; }
.dive-search-line { display:flex; gap:.5rem; }
.dive-search button,.dive-occurrence button,#diveMore { cursor:pointer; border:0; border-radius:.3rem; background:#314c48; color:white; padding:.7rem .9rem; font:700 .85rem Arial,sans-serif; }
.dive-search-line button { white-space:nowrap; }
.dive-hint,.dive-sources { font:.88rem/1.6 Arial,sans-serif; }
.dive-hint { color:#5f5b50; }
#diveStatus { min-height:1.5rem; color:#574631; font:.9rem/1.5 Arial,sans-serif; }
.dive-results { display:grid; gap:.45rem; max-height:28rem; overflow:auto; }
.dive-result { display:block; width:100%; text-align:left; background:#fffaf0 !important; color:#302b22 !important; border:1px solid #c8b591 !important; padding:.75rem !important; white-space:normal; }
.dive-result[aria-current="true"] { border:2px solid #2d696d !important; }
.dive-result strong { display:block; font:1.25rem Georgia,serif; }
.dive-result small { display:block; color:#65594a; font:.81rem/1.4 Arial,sans-serif; margin-top:.2rem; }
.dive-latin-result { background:#fffaf0; border:1px solid #c8b591; padding:.8rem; }
.dive-latin-result strong { font:700 .9rem Arial,sans-serif; }
.dive-latin-result p { font:1.05rem/1.6 Georgia,serif; }
.dive-related button { margin:.25rem; min-height:36px; border:1px solid #a68b61; border-radius:.3rem; background:#eadcbf; color:#263c3b; cursor:pointer; }
.bible-dive-link { display:inline-block; margin:1rem 0; color:#2b615d; }
.dive-detail h3 { font:400 1.7rem Georgia,serif; margin:0 0 1rem; }
.dive-lemma { font:400 clamp(1.8rem,3vw,2.6rem) Georgia,serif; margin:.4rem 0; }
.dive-tag { display:inline-block; padding:.2rem .55rem; border:1px solid #9c7c48; border-radius:1rem; font:700 .78rem Arial,sans-serif; }
.dive-detail dt { font:700 .78rem Arial,sans-serif; color:#645340; margin-top:1rem; text-transform:uppercase; letter-spacing:.06em; }
.dive-detail dd { margin:.35rem 0 0; font:1rem/1.6 Georgia,serif; }
.dive-clarity { padding:.9rem; background:#eee2c8; border-left:3px solid #a77a38; font:.87rem/1.6 Arial,sans-serif; }
.dive-occurrence { border-top:1px solid #c7bba5; margin-top:1rem; padding-top:1rem; }
.dive-occurrence h4 { margin:0 0 .4rem; font:400 1.35rem Georgia,serif; }
.dive-occurrence ul { list-style:none; margin:1rem 0; padding:0; display:grid; gap:.4rem; }
.dive-occurrence li button { background:#ecdfc5; color:#2b413d; border:1px solid #b7a587; min-height:42px; }
.dive-sources { color:#e4dbc8; margin-top:1.5rem; }
.dive-sources a { color:#f4d69a; }
#diveMore { margin-top:.8rem; }
@media (max-width:790px) { .dive-workspace { grid-template-columns:1fr; } .dive-search-line { flex-wrap:wrap; } .dive-search-line button { width:100%; min-height:44px; } .deep-dive-page { background-attachment:scroll; } }

/* Auth state must override the grid display on both phone and desktop. */
.account-forms[hidden], .account-profile[hidden] { display:none; }
#profileNameForm .profile-name-row { margin-bottom:14px; }
#profileWelcome { overflow-wrap:anywhere; }

.connection-check { margin: 1rem 0; padding: 1rem; border-left: 3px solid var(--gold, #b99a53); background: rgba(185,154,83,.12); font-size: 1rem; line-height: 1.6; }
.connection-check[hidden] { display: none; }
.connection-check p { margin: .65rem 0; }
.map-ask-form .trail-answer article + article { border-top: 1px solid rgba(185,154,83,.3); padding-top: 1rem; margin-top: 1rem; }

#mapConnectionQuestion { white-space: pre-wrap; }
#retryConnectionGuide[hidden] { display: none; }

.canyon-context-popup { width:min(960px,94vw); max-width:94vw; height:90dvh; max-height:90dvh; padding:0; border:2px solid var(--gold,#b99a53); border-radius:12px; background:#f8f3e7; color:#262d24; overflow:hidden; }
.canyon-context-popup::backdrop { background:rgba(10,15,11,.72); }
.canyon-popup-bar { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 18px; background:#263f35; color:#fff; }
.canyon-popup-bar h2 { margin:0; font-size:1.25rem; }
.canyon-popup-bar button { padding:10px 14px; font-size:1rem; border:1px solid #cbb779; border-radius:6px; color:#fff; background:#263f35; cursor:pointer; }
.canyon-popup-body { height:calc(100% - 78px); overflow-y:auto; overscroll-behavior:contain; padding:16px; }
.canyon-popup-body #bibles { padding:12px; min-height:0; }
.canyon-popup-body #bibleReturnSource, .canyon-popup-body #bibleReturnReading { display:none; }
@media(max-width:600px) { .canyon-context-popup { width:96vw; max-width:96vw; height:94dvh; max-height:94dvh; } .canyon-popup-bar { padding:10px; } .canyon-popup-bar h2 { font-size:1.05rem; } .canyon-popup-bar button { max-width:180px; } .canyon-popup-body { padding:10px; } }

#questionPinForm, #quickQuestionPinForm, .question-discussion form { display:grid; gap:12px; margin:16px 0; }
#questionPinForm label, #quickQuestionPinForm label, .question-discussion label { display:grid; gap:6px; font-size:1rem; }
#questionPinForm input, #questionPinForm textarea, #quickQuestionPinForm input, #quickQuestionPinForm textarea, .question-discussion textarea { box-sizing:border-box; width:100%; max-width:100%; padding:10px; font:inherit; color:#26392f; background:#fffdf7; border:1px solid #a39877; border-radius:5px; }
.question-discussion { margin-top:16px; border-top:1px solid #b5aa86; padding-top:12px; }
.question-discussion article { padding:10px 0; border-bottom:1px solid #d5cdb9; }
.question-discussion p, .community-card p { white-space:pre-wrap; overflow-wrap:anywhere; }
.question-pin-button { margin:10px 0; padding:10px 14px; min-height:44px; }
#questionPinDialog { width:min(640px,92vw); max-width:92vw; max-height:88dvh; overflow:auto; }
