.scroll-track { height: 2000vh; min-height: 10800px; }
.section-nav { gap: 12px; }
.section-nav button.nav-major { width: 15px; height: 15px; border: 2px solid #a9795c; }
.section-nav button.nav-minor { width: 7px; height: 7px; border-color: #8c7667; }
.section-nav button.nav-major.is-active,
.section-nav button.nav-minor.is-active { border-color: var(--orange-light); background: var(--orange-light); }
.section-nav button.nav-major:not(:first-child) { margin-top: 8px; }

/* The supplied BibleProject poster is the visual anchor of the book map. */
.book-map { inset: 9% 6.5% 10%; gap: 16px; }
.map-heading h2 { font-size: clamp(36px, 4.4vw, 58px); margin: 6px 0; }
.map-heading p { font-size: 14px; }
.map-poster { margin: 0; min-height: 0; display: flex; flex-direction: column; align-items: center; gap: 5px; }
.map-poster img { display: block; width: auto; max-width: 100%; max-height: 43svh; object-fit: contain; background: #f3f0e7; }
.map-poster figcaption { color: #8f8980; font: 10px Arial, sans-serif; letter-spacing: .07em; }
.map-poster a { color: #b7a493; text-decoration: underline; text-underline-offset: 2px; }
.map-grid { gap: 10px; }
.map-card { min-height: 120px; padding: 14px 15px 24px; }
.map-card h3 { font-size: clamp(18px, 1.75vw, 25px); margin: 9px 0 0; }
.map-index { font-size: 25px; }
.map-range { font-size: 8px; }
.you-are-here { left: 15px; bottom: 8px; font-size: 8px; }

/* The final therefore is its own two-part closing tableau. */
.logic-overview > .logic-heading,
.logic-overview > .logic-flow,
.logic-overview > .logic-grid,
.logic-overview > .logic-bottom {
  opacity: calc(1 - var(--summary-opacity, 0));
  transition: opacity .18s;
}
.logic-conclusion {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
  align-items: center;
  gap: clamp(32px, 5vw, 90px);
  opacity: var(--summary-opacity, 0);
  transform: translateY(calc((1 - var(--summary-opacity, 0)) * 14px));
  pointer-events: none;
}
.logic-overview.is-summary .logic-conclusion { pointer-events: auto; }
.logic-conclusion-card {
  min-height: 315px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(27px, 3vw, 50px);
  background: linear-gradient(155deg, #2d1c14, #15110e);
  border: 1px solid #62412e;
  border-top: 3px solid var(--orange-light);
}
.logic-conclusion-card h3 {
  margin: 39px 0 18px;
  font: 400 clamp(37px, 4vw, 60px)/1.02 Georgia, serif;
  letter-spacing: -.045em;
}
.logic-conclusion-card p {
  margin: 0;
  max-width: 470px;
  color: #ddd3c6;
  font: 19px/1.4 Georgia, serif;
}
.logic-conclusion-copy h3 {
  max-width: 680px;
  margin: 0 0 40px;
  color: var(--paper);
  font: 400 clamp(37px, 4.2vw, 66px)/1.06 Georgia, serif;
  letter-spacing: -.05em;
}
.logic-conclusion-copy p {
  max-width: 650px;
  margin: 0;
  color: #bcb6ad;
  font: 22px/1.4 Georgia, serif;
}

/* Verse 2 builds two notes without putting either note in the copied passage. */
.circle-anchor { position: relative; display: inline-block; white-space: nowrap; }
.word-circle { position: absolute; z-index: 2; left: -9%; top: -17%; width: 118%; height: 137%; overflow: visible; pointer-events: none; }
.word-circle path { fill: none; stroke: var(--orange); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 100; filter: drop-shadow(0 0 3px rgba(201, 109, 58, .22)); }
#conformed-anchor path { stroke-dashoffset: calc(100 - var(--conformed-circle, 0) * 100); opacity: var(--translation-circle-opacity, 1); }
#transformed-anchor path { stroke-dashoffset: calc(100 - var(--transformed-circle, 0) * 100); opacity: var(--translation-circle-opacity, 1); }
#mind-anchor path { stroke-dashoffset: calc(100 - var(--mind-circle, 0) * 100); }
.verse-two-note-slot { position: absolute; inset: 0; width: 100%; min-height: 0; }
.verse-two-note { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; pointer-events: none; }
.translation-note { opacity: var(--translation-note-opacity, 0); }
.testing-note { opacity: var(--testing-note-opacity, 0); }
.verse-two-note .annotation-label { margin-bottom: 15px; }
.verse-two-note .hand-note { font-size: clamp(31px, 3.1vw, 47px); line-height: 1.05; }
.verse-two-drawing { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; overflow: visible; }
.verse-two-drawing path { fill: none; stroke: var(--orange); stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 100; }
#conformed-connector, #transformed-connector { stroke-dashoffset: calc(100 - var(--translation-line, 0) * 100); opacity: var(--translation-line-opacity, 0); }
#testing-underline { stroke-width: 2.8; stroke-dashoffset: calc(100 - var(--testing-underline-progress, 0) * 100); }
#testing-connector { stroke-dashoffset: calc(100 - var(--testing-line, 0) * 100); }

/* Verse groups read as one passage with no internal divider. */
.passage-flow { max-width: 1120px; }

@media (max-width: 900px) {
  .book-map { inset: 9% 7% 9%; gap: 11px; }
  .map-poster img { max-height: 34svh; }
  .map-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
  .map-card { min-height: 83px; padding: 9px 11px 18px; }
  .map-card h3 { font-size: 18px; margin: 5px 0 0; }
  .map-index { font-size: 19px; }
  .map-range { font-size: 7px; }
  .you-are-here { left: 11px; bottom: 4px; font-size: 7px; }
  .logic-conclusion-card { min-height: 265px; }
  .logic-conclusion-card p { font-size: 16px; }
  .logic-conclusion-copy h3 { font-size: clamp(30px, 4vw, 43px); margin-bottom: 26px; }
  .logic-conclusion-copy p { font-size: 17px; }
}
@media (max-width: 700px) {
  .section-nav { gap: 9px; }
  .section-nav button.nav-major { width: 13px; height: 13px; }
  .section-nav button.nav-minor { width: 6px; height: 6px; }
  .section-nav button.nav-major:not(:first-child) { margin-top: 5px; }
  .verse-two-note { justify-content: flex-start; }
  .verse-two-note .annotation-label { margin-bottom: 5px; font-size: 8px; }
  .verse-two-note .hand-note { font-size: clamp(26px, 4.3vw, 32px); }
  .verse-two-drawing path { stroke-width: 1.6; }
}
@media (max-width: 450px) {
  .book-map { inset: 9% 7% 9%; gap: 7px; }
  .map-heading h2 { font-size: 30px; }
  .map-heading p { font-size: 11px; }
  .map-poster img { max-height: 28svh; }
  .map-poster figcaption { font-size: 8px; }
  .map-grid { grid-template-columns: 1fr; gap: 4px; }
  .map-card { min-height: 0; padding: 6px 8px 6px 77px; }
  .map-card-top { left: 8px; top: 8px; }
  .map-card h3 { margin: 14px 0 0; font-size: 16px; }
  .you-are-here { position: static; margin-top: 3px; }
  .logic-conclusion { grid-template-columns: 1fr; gap: 20px; align-content: center; }
  .logic-conclusion-card { min-height: 0; padding: 21px; }
  .logic-conclusion-card h3 { font-size: 31px; margin: 20px 0 10px; }
  .logic-conclusion-card p { font-size: 15px; }
  .logic-conclusion-copy h3 { font-size: 31px; margin-bottom: 23px; }
  .logic-conclusion-copy p { font-size: 16px; }
  .verse-two-note .hand-note { font-size: 25px; }
}
@media (max-height: 650px) {
  .map-poster img { max-height: 29svh; }
  .verse-two-note .hand-note { font-size: clamp(23px, 2.8vw, 38px); }
}

/* Full handwriting lines stay measurable while their reveal animation runs. */
.hand-note span { white-space: nowrap; }

/* Shared verse-slide standard: one reading column, one annotation column, one type scale. */
:root {
  --scripture-size: clamp(31px, 2.7vw, 36px);
  --verse-inset: 12% 7% 11%;
  --verse-columns: minmax(0, 1.67fr) minmax(0, .83fr);
  --verse-column-gap: 7%;
  --verse-citation-gap: 25px;
}
.focus-layout {
  inset: var(--verse-inset);
  align-items: center;
  grid-template-columns: var(--verse-columns);
  gap: var(--verse-column-gap);
}
.verse-panel { min-width: 0; }
.verse-reference,
.passage-citation {
  display: block;
  position: relative;
  margin: var(--verse-citation-gap) 0 0;
  color: var(--orange-light);
  font: 700 11px/1.3 Arial, sans-serif;
  letter-spacing: .22em;
  text-transform: uppercase;
}
.verse-reference span,
.passage-citation > span:not(.range-three):not(.range-three-five) { color: #aaa49b; }
.passage-slide { inset: var(--verse-inset); }
.passage-slide .passage-frame {
  display: grid;
  grid-template-columns: var(--verse-columns);
  gap: var(--verse-column-gap);
  align-items: center;
  width: 100%;
  max-height: 100%;
}
.passage-reading { grid-column: 1; min-width: 0; }
.passage-reading .passage-body { max-width: none; }
.focus .verse,
.focus .passage-text,
.passage-slide .passage-text,
.passage-expand .passage-text,
.passage-group .passage-flow .passage-text,
.passage-dense .passage-flow .passage-text {
  font-size: var(--scripture-size);
  line-height: 1.23;
  letter-spacing: -.025em;
}
.passage-slide .passage-text { margin-bottom: .5em; }
.passage-slide .passage-text:last-child { margin-bottom: 0; }
.passage-citation .range-three-five { color: var(--orange-light); }
.theme-worship .verse-two-scripture { margin: 19px 0 0; }
.theme-worship .living-circle,
.theme-worship #living-connector-path { opacity: var(--verse-one-ink-opacity, 1); }

/* Three thematic sections stay in place while their reading beats advance. */
.theme-section { position: absolute; inset: 0; pointer-events: none; }
.theme-section.is-active { pointer-events: auto; }
.theme-heading {
  position: absolute;
  z-index: 5;
  top: 10.5%;
  left: 7%;
  right: 7%;
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s ease;
}
.theme-section.is-active .theme-heading { opacity: 1; }
.theme-heading span {
  color: var(--orange-light);
  font: 700 10px/1.3 Arial, sans-serif;
  letter-spacing: .25em;
}
.theme-heading h2 {
  max-width: 850px;
  margin: 9px 0 0;
  color: var(--paper);
  font: 400 clamp(23px, 2.6vw, 36px)/1.08 Georgia, 'Times New Roman', serif;
  letter-spacing: -.035em;
}

@media (max-width: 1100px) and (min-width: 701px) {
  :root {
    --verse-columns: minmax(0, 1.8fr) minmax(0, .55fr);
    --verse-column-gap: 5%;
  }
}
@media (max-width: 700px) {
  :root {
    --scripture-size: clamp(21px, 4vw, 28px);
    --verse-inset: 11% 7% 10%;
    --verse-citation-gap: 17px;
  }
  .focus-layout {
    inset: var(--verse-inset);
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  .annotation-slot { margin-top: 22px; }
  .passage-slide { inset: var(--verse-inset); }
  .passage-slide .passage-frame { display: block; width: 100%; }
  .verse-reference,
  .passage-citation { margin-top: var(--verse-citation-gap); font-size: 9px; }
  .theme-heading { top: 9%; }
  .theme-heading span { font-size: 8px; }
  .theme-heading h2 { max-width: 95%; font-size: clamp(22px, 4.3vw, 29px); }
  .theme-worship .annotation-slot { min-height: 180px; }
  .theme-worship .verse-two-scripture { margin-top: 16px; }
}
@media (max-height: 650px) {
  :root { --scripture-size: clamp(21px, 3vw, 29px); }
}
@media (max-width: 450px) {
  :root { --scripture-size: 20px; --verse-inset: 9% 7% 9%; }
  .theme-heading { top: 7%; }
  .theme-heading h2 { font-size: 22px; }
  .theme-worship .annotation-slot { min-height: 160px; }
}
@media (max-width: 450px) and (max-height: 650px) {
  :root { --scripture-size: 18px; }
}

/* Opening: the therefore mark is the visual title. */
.intro .therefore-mark { width: 205px; height: 178px; }
.intro .therefore-mark span { width: 38px; height: 38px; }
.intro .therefore-mark span:nth-child(1) { left: 42px; top: 12px; }
.intro .therefore-mark span:nth-child(2) { right: 42px; top: 12px; }
.intro .therefore-mark span:nth-child(3) { left: 83px; top: 99px; }
.intro-therefore { margin-bottom: 184px; font-size: 18px; letter-spacing: .15em; }
.intro-title { font-size: clamp(24px, 2.6vw, 31px); }

/* The user-provided PowerPoint supplies the Romans background facts and engraving. */
.romans-background { position:absolute; inset:0; z-index:2; opacity:var(--background-opacity,0); pointer-events:none; overflow:hidden; background:#0b0b0a; }
.romans-background.is-active { pointer-events:auto; opacity:1; }
.background-engraving { position:absolute; right:-3%; top:0; width:65%; height:100%; object-fit:cover; object-position:55% center; filter:grayscale(1) sepia(.5) contrast(1.18) brightness(.26); opacity:calc(.58 * var(--background-opacity,0)); mask-image:linear-gradient(to right,transparent,#000 22%); }
.romans-background::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,#0b0b0a 23%,transparent 78%),linear-gradient(0deg,#0b0b0a99,transparent 35%); pointer-events:none; }
.background-content { position:absolute; z-index:1; inset:13% 8% 12%; display:flex; flex-direction:column; justify-content:center; max-width:1050px; opacity:var(--background-opacity,0); }
.background-content h2 { margin:13px 0 38px; font:400 clamp(49px,6vw,88px)/.98 Georgia,serif; letter-spacing:-.055em; }
.background-content h2 em { color:var(--orange-light); font-weight:400; }
.background-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:27px 50px; max-width:770px; }
.background-facts p { margin:0; max-width:360px; color:#d0c9bf; font:18px/1.38 Georgia,serif; }
.background-facts strong { display:block; margin-bottom:8px; color:var(--orange-light); font:700 10px/1.2 Arial,sans-serif; letter-spacing:.21em; text-transform:uppercase; }
.background-takeaway { max-width:790px; margin-top:42px; padding-top:20px; border-top:1px solid #8c5637; color:var(--paper); font:italic 23px/1.3 Georgia,serif; }

/* One large Consecration tableau follows three quoted logic steps. */
.logic-therefore-mark { width:160px; height:123px; margin-bottom:13px; }
.logic-therefore-mark span { width:35px; height:35px; }
.logic-therefore-mark span:nth-child(1) { left:31px; top:0; }
.logic-therefore-mark span:nth-child(2) { right:31px; top:0; }
.logic-therefore-mark span:nth-child(3) { left:62px; top:68px; }
.logic-card[data-logic="3"] { opacity:.48; }
.logic-card[data-logic="3"].is-current { opacity:.48; border-top-color:#51483f; background:linear-gradient(155deg,#1a1917,#11110f); }
.logic-conclusion-card blockquote { margin:25px 0 0; padding-top:20px; border-top:1px solid #80513a; color:#e9c9b3; font:italic 20px/1.32 Georgia,serif; }
.logic-conclusion-card cite { display:block; margin-top:13px; color:var(--orange-light); font:700 9px Arial,sans-serif; letter-spacing:.18em; font-style:normal; }

/* The transition slide names the three responses before the first reading. */
.responses-overview { position:absolute; inset:0; z-index:2; display:grid; place-items:center; opacity:var(--responses-opacity,0); pointer-events:none; background:#0b0b0a; }
.responses-overview.is-active { pointer-events:auto; opacity:1; }
.responses-inner { width:min(1070px,82vw); text-align:center; opacity:var(--responses-opacity,0); }
.responses-mark.therefore-mark { transform:scale(.56); transform-origin:bottom center; height:90px; margin-top:-24px; }
.responses-inner h2 { margin:5px 0 42px; color:var(--paper); font:italic 400 clamp(42px,5vw,72px)/1 Georgia,serif; letter-spacing:-.045em; }
.response-list { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; text-align:left; }
.response-list article { min-height:215px; padding:28px 24px; border:1px solid #4c3b31; border-top:2px solid var(--orange-light); background:linear-gradient(155deg,#251a14,#13110f); }
.response-list article>span { color:var(--orange-light); font:700 10px Arial,sans-serif; letter-spacing:.18em; }
.response-list h3 { margin:35px 0 0; color:var(--paper); font:400 clamp(25px,2.35vw,35px)/1.13 Georgia,serif; letter-spacing:-.03em; }

/* The same triangular mark precedes each Romans 12 statement. */
.three-dots { position:relative; display:inline-block; width:31px; height:28px; margin-right:12px; vertical-align:-3px; }
.three-dots b { position:absolute; width:7px; height:7px; border-radius:50%; background:var(--orange-light); }
.three-dots b:nth-child(1) { left:3px; top:2px; }.three-dots b:nth-child(2) { right:3px; top:2px; }.three-dots b:nth-child(3) { left:12px; top:17px; }
.focus .verse .verse-number { display:inline; font:700 .48em Arial,sans-serif; color:var(--orange-light); vertical-align:baseline; top:-.45em; margin-right:.22em; }

/* Long passages remain single selectable paragraphs while the reading window pans. */
.continuous-passage { inset:20% 7% 10%; }
.continuous-passage .passage-frame { height:100%; }
.continuous-passage .passage-reading { height:100%; display:flex; flex-direction:column; justify-content:center; }
.continuous-window { height:min(50svh,600px); overflow:hidden; mask-image:linear-gradient(to bottom,transparent,#000 5%,#000 93%,transparent); }
.continuous-text { transform:translateY(var(--passage-pan,0px)); will-change:transform; }
.continuous-passage .passage-citation { align-self:flex-start; }
.continuous-passage .passage-text { margin:0; }

@media(max-width:900px) {
  .background-content { inset:11% 8% 10%; }
  .background-content h2 { margin-bottom:28px; }
  .background-facts { gap:20px 28px; max-width:650px; }
  .background-facts p { font-size:16px; }
  .background-takeaway { font-size:20px; margin-top:27px; }
  .logic-therefore-mark { transform:scale(.76); height:88px; margin-bottom:0; }
  .responses-inner { width:min(760px,82vw); }
  .response-list article { min-height:180px; padding:20px 16px; }
  .response-list h3 { margin-top:24px; font-size:24px; }
}
@media(max-width:700px) {
  .intro-therefore { margin-bottom:145px; }
  .background-engraving { width:100%; opacity:.34; }
  .background-content { inset:12% 9% 11%; }
  .background-content h2 { font-size:clamp(42px,8vw,59px); }
  .background-facts { grid-template-columns:1fr; gap:15px; }
  .background-facts p { font-size:15px; }
  .background-facts strong { margin-bottom:4px; }
  .background-takeaway { font-size:17px; margin-top:18px; padding-top:12px; }
  .response-list { grid-template-columns:1fr; gap:8px; }
  .response-list article { min-height:0; padding:16px 18px; }
  .response-list h3 { margin-top:8px; font-size:25px; }
  .responses-inner h2 { margin-bottom:25px; }
  .continuous-passage { inset:18% 7% 9%; }
  .continuous-window { height:49svh; }
}
@media(max-width:450px) {
  .intro .therefore-mark { transform:scale(.85); transform-origin:center bottom; height:150px; }
  .intro-therefore { margin-bottom:132px; }
  .logic-therefore-mark { transform:scale(.65); height:76px; }
  .logic-card[data-logic="3"] blockquote { display:none; }
  .logic-conclusion-card blockquote { font-size:15px; margin-top:14px; padding-top:12px; }
  .responses-mark.therefore-mark { height:64px; }
  .responses-inner h2 { font-size:37px; }
  .response-list h3 { font-size:21px; }
  .continuous-passage { inset:17% 7% 9%; }
  .continuous-window { height:47svh; }
}

/* Opening mark sits at the center of the viewport; the two labels follow below. */
.intro-inner { position:relative; width:100%; height:100%; transform:none; }
.intro .therefore-mark { position:absolute; left:50%; top:50%; margin:0; transform:translate(-50%,-50%); }
.intro-therefore { position:absolute; left:50%; top:calc(50% + 105px); margin:0; transform:translateX(-50%); white-space:nowrap; }
.intro-title { position:absolute; left:50%; top:calc(50% + clamp(200px,31vh,255px)); transform:translateX(-50%); white-space:nowrap; }

/* Keep the three-dot glyph in its own column as statements wrap. */
.response-list h3 { display:grid; grid-template-columns:31px minmax(0,1fr); align-items:start; column-gap:13px; }
.response-list .three-dots { margin:4px 0 0; }
.response-copy { display:block; min-width:0; }
.responses-mark.therefore-mark { margin-bottom:28px; }

/* Entire passage fits on one slide, with the same layout for both verse groups. */
.continuous-passage { inset:18% 7% 11%; }
.continuous-passage .passage-frame { grid-template-columns:minmax(0,1fr); width:100%; height:100%; max-height:none; }
.continuous-passage .passage-reading { grid-column:1; height:100%; min-height:0; display:flex; flex-direction:column; justify-content:center; }
.continuous-window { height:auto; max-height:none; overflow:visible; mask-image:none; }
.continuous-text { transform:none; will-change:auto; }
.continuous-passage .passage-text { font-size:clamp(18px,2.1vw,27px); line-height:1.2; letter-spacing:-.015em; }
.continuous-passage .passage-citation { margin-top:18px; }

@media(max-width:700px) {
  .continuous-passage { inset:17% 7% 10%; }
  .continuous-passage .passage-frame { display:block; height:100%; }
  .continuous-passage .passage-text { font-size:18px; line-height:1.18; }
  .response-list h3 { grid-template-columns:31px minmax(0,1fr); }
}
@media(max-width:450px) {
  .intro .therefore-mark { top:50%; transform:translate(-50%,-50%) scale(.85); }
  .intro-therefore { top:calc(50% + 92px); }
  .intro-title { top:calc(50% + 215px); }
  .continuous-passage { inset:17% 7% 9%; }
  .continuous-passage .passage-text { font-size:16px; line-height:1.16; }
}

/* The BibleProject art sits behind the four movements instead of in a framed poster. */
.book-map { justify-content:space-between; padding:54px 0 70px; isolation:isolate; }
.book-map::before { content:""; position:absolute; z-index:1; inset:-11% -7.5% -12%; background:linear-gradient(90deg,rgba(9,9,9,.58),rgba(9,9,9,.12) 55%,rgba(9,9,9,.24)),linear-gradient(0deg,rgba(9,9,9,.7),transparent 48%); pointer-events:none; }
.map-poster { position:absolute; z-index:0; inset:-11% -7.5% -12%; display:block; margin:0; overflow:hidden; pointer-events:none; }
.map-poster img { position:absolute; inset:0; width:100%; height:100%; max-width:none; max-height:none; object-fit:cover; object-position:center; background:none; filter:grayscale(1) sepia(.34) brightness(.72) contrast(1.16); opacity:.56; }
.map-poster figcaption { position:absolute; z-index:3; right:7%; top:11%; color:#b7aca0; font-size:10px; pointer-events:auto; }
.map-heading,.map-grid { position:relative; z-index:2; }
.map-heading { text-shadow:0 2px 16px #080808,0 0 30px #080808; }
.map-card { background:rgba(12,11,10,.88); border-color:#554337; }
.map-card.current { background:rgba(37,23,17,.9); }

/* Consecration reads as a definition, with the reflection unchanged beside it. */
.logic-conclusion-card { min-height:390px; }
.definition-source { color:var(--orange-light); font:700 10px/1.25 Arial,sans-serif; letter-spacing:.19em; }
.logic-conclusion-card .definition-word { margin:28px 0 9px; color:var(--paper); font:400 clamp(35px,3.45vw,51px)/1.05 Georgia,serif; letter-spacing:-.06em; white-space:nowrap; }
.definition-part { color:#bfb7ab; font:italic 17px/1.2 Georgia,serif; }
.logic-conclusion-card .definition-text { margin:25px 0 0; color:#eee6dc; font:19px/1.36 Georgia,serif; }
.logic-conclusion-card blockquote { margin-top:23px; padding-top:17px; font-size:17px; }

/* The overview presents three large steps; Consecration remains the next slide. */
.logic-flow,.logic-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.logic-card { min-height:250px; padding:27px 25px; }
.logic-card h3 { font-size:clamp(28px,2.35vw,38px); }
.logic-card p { font-size:17px; line-height:1.44; }
.conclusion-therefore-mark { position:relative; width:52px; height:44px; margin:0 0 22px; }
.conclusion-therefore-mark span { position:absolute; width:12px; height:12px; border-radius:50%; background:var(--orange-light); }
.conclusion-therefore-mark span:nth-child(1) { left:5px; top:2px; }
.conclusion-therefore-mark span:nth-child(2) { right:5px; top:2px; }
.conclusion-therefore-mark span:nth-child(3) { left:20px; top:27px; }

@media(max-width:900px) {
  .book-map { padding:50px 0 48px; }
  .map-poster img { max-height:none; }
  .logic-conclusion-card { min-height:350px; }
  .logic-conclusion-card .definition-word { font-size:clamp(32px,4.5vw,44px); }
  .logic-conclusion-card .definition-text { font-size:17px; }
  .logic-grid { grid-template-columns:1fr; gap:9px; }
  .logic-card { min-height:0; padding:13px 17px; }
  .logic-card h3 { margin:10px 0 7px; font-size:24px; }
  .logic-card p { font-size:14px; line-height:1.3; }
}
@media(max-width:700px) {
  .book-map { padding:47px 0 38px; }
  .map-poster figcaption { right:8%; top:9%; }
  .map-poster img { max-height:none; opacity:.48; }
}
@media(max-width:450px) {
  .book-map { padding:28px 0 25px; }
  .map-poster figcaption { top:7%; font-size:8px; }
  .logic-conclusion-card { min-height:0; }
  .logic-conclusion-card .definition-word { margin:13px 0 5px; font-size:30px; }
  .definition-part { font-size:14px; }
  .logic-conclusion-card .definition-text { margin-top:12px; font-size:15px; line-height:1.27; }
  .logic-conclusion-card blockquote { margin-top:13px; padding-top:10px; font-size:14px; line-height:1.22; }
}

/* Give the therefore symbol room and center it over the Consecration question. */
.conclusion-therefore-mark { width:94px; height:76px; margin:0 auto 25px; }
.conclusion-therefore-mark span { width:22px; height:22px; }
.conclusion-therefore-mark span:nth-child(1) { left:10px; top:0; }
.conclusion-therefore-mark span:nth-child(2) { right:10px; top:0; }
.conclusion-therefore-mark span:nth-child(3) { left:36px; top:48px; }

/* The response symbol stands four text lines above the cards. */
.responses-mark.therefore-mark { margin:-24px auto clamp(105px,15vh,160px); }

/* Handwritten glyphs have overhangs; reserve space inside the reveal mask. */
.hand-note span { box-sizing:border-box; width:max-content; max-width:calc(100% - 18px); padding:0 14px 0 8px; margin-left:-8px; }
.translation-note .annotation-label { box-sizing:border-box; max-width:100%; padding-right:16px; font-size:clamp(8px,.72vw,10px); letter-spacing:.18em; }

/* Both parts of the living-sacrifice phrase point to the same reflection. */
.body-anchor .living-circle path { stroke-dashoffset:calc(100 - var(--body-circle,0)*100); }
.theme-worship .body-anchor .living-circle,
.theme-worship #body-connector-path { opacity:var(--verse-one-ink-opacity,1); }
#body-connector-path { stroke-dashoffset:calc(100 - var(--body-connector,0)*100); }

/* A summary closes Romans 12:1–2 before the next passage begins. */
.worship-summary { position:absolute; z-index:7; inset:0; display:grid; place-items:center; padding:9% 7%; box-sizing:border-box; background:#0b0b0a; opacity:var(--worship-summary-opacity,0); pointer-events:none; }
.worship-summary.is-active { pointer-events:auto; }
.summary-inner { width:min(1220px,100%); text-align:center; }
.summary-mark.therefore-mark { position:relative; width:90px; height:78px; transform:none; margin:0 auto 16px; }
.summary-mark.therefore-mark span { width:18px; height:18px; }
.summary-mark.therefore-mark span:nth-child(1) { left:15px; top:0; }
.summary-mark.therefore-mark span:nth-child(2) { right:15px; top:0; }
.summary-mark.therefore-mark span:nth-child(3) { left:36px; top:43px; }
.summary-inner h2 { margin:0 0 55px; color:var(--paper); font:400 clamp(42px,5.2vw,76px)/1.03 Georgia,serif; letter-spacing:-.055em; }
.summary-inner h2 em { color:var(--orange-light); font-weight:400; }
.summary-three { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; text-align:left; }
.summary-three article { min-height:245px; box-sizing:border-box; padding:31px 28px; border:1px solid #594132; border-top:3px solid var(--orange-light); background:linear-gradient(155deg,#291c15,#13110f); }
.summary-three article>span { color:var(--orange-light); font:700 10px Arial,sans-serif; letter-spacing:.19em; }
.summary-three h3 { margin:35px 0 14px; color:var(--paper); font:400 clamp(31px,2.8vw,42px)/1.05 Georgia,serif; letter-spacing:-.035em; }
.summary-three p { margin:0; color:#c5bbb0; font:18px/1.38 Georgia,serif; }
@media(max-width:900px) {
  .summary-inner h2 { margin-bottom:30px; }
  .summary-three { gap:10px; }
  .summary-three article { min-height:220px; padding:20px 18px; }
  .summary-three h3 { margin-top:26px; font-size:30px; }
  .summary-three p { font-size:16px; }
}
@media(max-width:700px) {
  .responses-mark.therefore-mark { margin-bottom:clamp(75px,11vh,110px); }
  .summary-three { grid-template-columns:1fr; }
  .summary-three article { min-height:0; padding:15px 18px; }
  .summary-three h3 { margin:9px 0 5px; font-size:27px; }
  .summary-three p { font-size:15px; }
  .summary-inner h2 { margin-bottom:22px; font-size:clamp(37px,7vw,50px); }
  .summary-mark.therefore-mark { width:72px; height:65px; margin-bottom:10px; }
  .summary-mark.therefore-mark span { width:14px; height:14px; }
  .summary-mark.therefore-mark span:nth-child(1) { left:12px; top:0; }
  .summary-mark.therefore-mark span:nth-child(2) { right:12px; top:0; }
  .summary-mark.therefore-mark span:nth-child(3) { left:29px; top:35px; }
}
@media(max-width:450px) {
  .conclusion-therefore-mark { transform:scale(.7); transform-origin:center bottom; height:54px; margin-bottom:10px; }
  .responses-mark.therefore-mark { margin-bottom:65px; }
  .summary-three article { padding:11px 14px; }
  .summary-three h3 { font-size:23px; }
  .summary-three p { font-size:13px; }
}

/* Romans 12:3–8 follows the shared reading and annotation columns in two beats. */
.serve-slide .passage-frame { position:relative; z-index:1; }
.serve-slide .passage-reading { grid-column:1; }
.serve-slide .passage-text { font-size:clamp(27px,2.6vw,36px); line-height:1.22; }
.serve-gifts .passage-text { font-size:clamp(20px,2vw,28px); line-height:1.2; }
.serve-annotation { grid-column:2; min-width:0; opacity:var(--serve34-note,0); pointer-events:none; }
.serve-gifts .serve-annotation { opacity:var(--serve58-note,0); }
.serve-annotation .hand-note { font-size:clamp(29px,2.9vw,44px); line-height:1.04; }
.serve-body-note { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:16px; }
.serve-body-note .hand-note { width:100%; font-size:clamp(27px,2.6vw,40px); }
.serve-circle-anchor { position:relative; display:inline-block; white-space:nowrap; }
.serve-circle { position:absolute; z-index:2; left:-8%; top:-10%; width:116%; height:120%; overflow:visible; pointer-events:none; }
.serve-circle path { fill:none; stroke:var(--orange); stroke-width:3.2; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:100; filter:drop-shadow(0 0 3px rgba(201,109,58,.2)); }
#faith-circle-anchor .serve-circle path { stroke-dashoffset:calc(100 - var(--serve34-circle,0)*100); opacity:var(--serve34-circle,0); }
#one-body-anchor .serve-circle path,
#grace-given-anchor .serve-circle path { stroke-dashoffset:calc(100 - var(--serve58-circle,0)*100); opacity:var(--serve58-circle,0); }
.serve-ink { position:absolute; inset:0; width:100%; height:100%; overflow:visible; pointer-events:none; }
.serve-ink path { fill:none; stroke:var(--orange); stroke-width:2.5; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:100; }
#faith-underline { stroke-dashoffset:calc(100 - var(--serve34-underline,0)*100); opacity:var(--serve34-underline,0); }
#faith-connector { stroke-dashoffset:calc(100 - var(--serve34-line,0)*100); opacity:var(--serve34-line,0); }
#gifts-underline { stroke-dashoffset:calc(100 - var(--serve58-underline,0)*100); opacity:var(--serve58-underline,0); }
#body-connector,#grace-connector { stroke-dashoffset:calc(100 - var(--serve58-line,0)*100); opacity:var(--serve58-line,0); }
.body-drawing { width:min(190px,62%); height:145px; overflow:visible; fill:none; stroke:var(--orange-light); stroke-width:3; stroke-linecap:round; stroke-linejoin:round; opacity:var(--body-drawing-progress,0); }
.body-drawing path,.body-drawing circle { stroke-dasharray:400; stroke-dashoffset:calc((1 - var(--body-drawing-progress,0))*400); }

@media(max-width:900px) {
  .serve-slide .passage-text { font-size:clamp(23px,2.7vw,29px); }
  .serve-gifts .passage-text { font-size:clamp(18px,2vw,23px); }
  .serve-annotation .hand-note { font-size:clamp(24px,2.7vw,34px); }
}
@media(max-width:700px) {
  .serve-slide .passage-frame { display:flex; flex-direction:column; justify-content:center; gap:15px; height:100%; }
  .serve-slide .passage-reading { width:100%; }
  .serve-slide .passage-text { font-size:clamp(21px,4vw,27px); line-height:1.3; }
  .serve-gifts .passage-text { font-size:clamp(16px,3vw,19px); line-height:1.3; }
  .serve-annotation { width:85%; align-self:flex-end; }
  .serve-annotation .hand-note { font-size:clamp(25px,4.3vw,32px); }
  .serve-body-note { flex-direction:row; width:100%; gap:8px; }
  .serve-body-note .body-drawing { width:25%; height:100px; flex:none; }
  .serve-body-note .hand-note { width:72%; font-size:clamp(20px,3.2vw,27px); }
  .serve-gifts .passage-citation { margin-top:11px; }
  .love-reading .passage-text { font-size:18px; line-height:1.18; }
}
@media(max-width:450px) {
  .serve-slide .passage-text { font-size:19px; }
  .serve-gifts .passage-text { font-size:14px; line-height:1.13; }
  .serve-slide .passage-frame { gap:10px; }
  .serve-body-note .body-drawing { height:82px; }
  .love-reading .passage-text { font-size:15px; line-height:1.16; }
}

/* Love's two scripture readings retain the verse-slide standard; the supplied
   action tables become a clear, selectable speaking outline between them. */
.love-practice-slide { position:absolute; inset:20% 7% 11%; display:flex; align-items:center; opacity:var(--slide-opacity,0); transform:translateY(calc((1 - var(--slide-opacity,0))*20px)); pointer-events:none; user-select:text; }
.love-practice-slide.is-active { pointer-events:auto; }
.practice-inner { width:100%; max-width:1260px; margin:0 auto; }
.practice-heading { margin-bottom:20px; }
.practice-heading > span { color:var(--orange-light); font:700 10px/1.2 Arial,sans-serif; letter-spacing:.22em; }
.practice-heading h3 { margin:8px 0 0; color:var(--paper); font:400 clamp(29px,3.2vw,44px)/1.04 Georgia,serif; letter-spacing:-.04em; }
.practice-grid { counter-reset:love-actions; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px 13px; margin:0; padding:0; list-style:none; }
.practice-grid li { counter-increment:love-actions; display:grid; grid-template-columns:31px minmax(0,1fr); align-items:center; min-height:47px; padding:9px 13px; border:1px solid #4c3b31; border-left:2px solid var(--orange); background:linear-gradient(105deg,rgba(45,28,20,.85),rgba(22,19,16,.85)); color:var(--paper); font:400 clamp(16px,1.45vw,21px)/1.17 Georgia,serif; }
.practice-grid li::before { content:counter(love-actions,decimal-leading-zero); align-self:start; padding-top:2px; color:var(--orange-light); font:700 10px/1.2 Arial,sans-serif; letter-spacing:.04em; }
.responses-reprise { opacity:var(--responses-reprise-opacity,0); }
.responses-reprise .responses-inner { opacity:var(--responses-reprise-opacity,0); }
@media(max-width:700px) {
  .love-practice-slide { inset:16% 7% 10%; }
  .practice-heading { margin-bottom:12px; }
  .practice-heading h3 { font-size:29px; }
  .practice-grid { grid-template-columns:1fr; gap:4px; }
  .practice-grid li { grid-template-columns:26px minmax(0,1fr); min-height:0; padding:6px 9px; font-size:16px; line-height:1.15; }
  .practice-grid li::before { font-size:9px; }
}
@media(max-width:450px) {
  .love-practice-slide { inset:15% 7% 9%; }
  .practice-heading h3 { font-size:25px; }
  .practice-grid li { font-size:14px; padding:5px 8px; }
}
