/*
V7-HEADER
Title:     Viridians Proof Ledger Book
Filename:  viridians-trigger-detail-book.css
Path:      /assets/css/viridians/partials/viridians-trigger-detail-book.css
Version:   v1.3.73
Issued:    2026-04-24
Updated:   2026-06-23
Author:    Buktika Webdesk (Binka)
Purpose:   Leather-bound evidence ledger for Viridians Page 3.
           Scoped to .page-viridians-proof-ledger and the storybook shell.
ChangeLog:
  v1.3.73 (2026-06-23): Moved the mobile cover title band lower (top 9.75% -> 20%).
  v1.3.72 (2026-06-23): Extended the no-crop background-size:contain to the back
    cover (the v1.3.71 revert had dropped its sizing, re-cropping it) and added
    text-wrap:balance to the cover title so "Pack" is no longer orphaned.
  v1.3.71 (2026-06-23): Reworked the cover crop fix. v1.3.70 resized the cover card
    to the art aspect, which made the front cover shorter/smaller than the rest and
    the title look oversized. Reverted to the uniform card height and instead use
    background-size:contain on the front cover so the whole art shows without
    shrinking the card. Back cover untouched.
  v1.3.70 (2026-06-23): (superseded) cover/back-cover cards used their own image
    aspect (850/1266, 830/1303) to stop the crop — caused the front cover to render
    smaller than the interior pages.
  v1.3.69 (2026-06-23): FIXED mobile cover title placement. The pager forces inline
    height:100% on each card's first child (flow pages fill the card); the cover's
    first child is the absolute title overlay, so that + top:9.75% + flex-centering
    dropped the title to ~60%. Restored the designed 25% band via !important.
  v1.3.68 (2026-06-23): FIXED mobile cover showing no title. .sb-mobile-page had
    no position, so the cover's absolutely-positioned .vtr-cover-overlay (title)
    had no containing block and escaped the cover. Added position:relative
    (matches the working .page-reporters .sb-mobile-page).
  v1.3.67 (2026-06-18): TABLE width = .container/Briefing width; the fit-viewport JS
    (loader v1.1.35) sizes the BOOK to fit the viewport and centers it on the table.
    Section comment corrected (data-fit-viewport is ON, JS owns the height).
  v1.3.66 (2026-06-17): book now FILLS the section width (matches Executive Briefing).
    Removed the section's fixed 1.42 aspect (height now follows the book) and set the
    book-stage to the book's true spread aspect 1768:1396. Paired with data-fit-
    viewport="false" in the partial so JS no longer caps the section to viewport height.
  v1.3.65 (2026-06-17): book SECTION width now matches the .container (Executive
    Briefing) width — min(100vw-4rem, 1136px), centered — instead of the viewport-
    height-derived width, so the book aligns with the section below it.
  v1.3.64 (2026-06-17): book-stage width 88% -> 100% so the book fills its section
    (was leaving ~12% unused) — larger, more legible on the page.
  v1.3.63 (2026-06-17): prose body 0.92->1rem (subhead 1.05, title 1.28) — the 0.92
    read too small; step/fact TABLE text decoupled and kept smaller (0.9rem).
  v1.3.62 (2026-06-17): step/fact grid is now FIXED + consistent on every row/page:
    tight number column (1.6rem), one shared label width (8.5rem; long single-word
    labels fit, multi-word wrap), text column takes the rest; column-gap 0.6rem. No
    per-page/per-row column resizing (kills the asymmetry + wasted number gap).
  v1.3.61 (2026-06-17): (1) step/fact label column CAPPED (minmax(min-content,
    9.5rem/10rem)) instead of max-content, so the text column keeps the majority of
    the width (no thin strip) while a long single-word label still fits unbroken and
    multi-word labels wrap. (2) reader + book-stage aspect 3:2 -> 1.42:1 (taller), so
    a width-limited book uses more viewport height; still height-capped (no overflow).
  v1.3.60 (2026-06-17): (1) smaller, book-proportioned proof type scale (body
    1.06->0.92 etc.) — the old size read oversized/"Grade 1" on the tall page.
    (2) wide-width step/fact label column sized to its own content (max-content) so
    a long label (REVIEWABILITY) fits and never overruns the text column; narrow
    width still stacks. No fixed % cap.
  v1.3.59 (2026-06-17): FIRST block built to the Book Authoring Standard. The
    step/fact rows now own a width-intrinsic RESPONSIVE layout: number|label|text
    columns when wide, collapsing to number+label then full-width text on a narrow
    (<=48rem) phone column — so a long unbreakable label can never squeeze the text
    column to a sliver or overflow. Removes the min-content patch (v1.3.57). Viewport
    rule → applies identically in the measure probe and render (measure==render).
    (Layout still lives in this book CSS; the standard's §11 migration moves it to
    engine-level per-block CSS later.)
  v1.3.58 (2026-06-16): align the foundation text-page header to the proof-page
    header top-offset under v2, so a proof page facing a foundation page shows the
    two header bars at the same height across the spread.
  v1.3.57 (2026-06-16): label columns (step + fact) sized to min-content under v2
    so a long single-word label (e.g. REVIEWABILITY) stays on ONE line in its own
    column — never broken mid-word, never overrunning the text column. Replaces the
    v1.3.56 overflow-wrap:anywhere approach, which wrongly broke words.
  v1.3.56 (2026-06-16): (superseded) step/fact label overflow-wrap experiment.
  v1.3.55 (2026-06-15): v2 engine — unified header bar across all proof-ledger page types
    (proof / evidence-ledger / foundation): same min-height, padding, border + label size,
    so headers line up and match in style across a spread.
  v1.3.54 (2026-06-15): v2 engine — bumped proof text to a comfortable fixed size now that
    v2 pages fill the viewport height (loader v1.1.15 drops the 3:2 tabletop cap).
  v1.3.53 (2026-06-15): v2 engine — FUNDAMENTAL: pin proof text tokens to fixed rem sizes
    (remove cqh/clamp height-dependence); text size is now stable regardless of page
    height. v2 measures & splits so fixed-size text reflows instead of shrinking.
  v1.3.52 (2026-06-15): v2 engine — reverted the two-column header experiment; proof module
    now renders a single consistent top-bar label. (Paired with proof-ledger v0.1.5.)
  v1.3.51 (2026-06-15): v2 engine — proof header as two columns (eyebrow left, running-head
    right) with a subtle left-column tint; left text kept to one row. First-pass styling.
  v1.3.50 (2026-06-15): v2 engine — hide the proof index-terms footer row entirely
    (cleaner; removes the inconsistent some-show/some-don't across a spread). Replaces
    the v1.3.49 bottom-pin approach. Probe carries .sdx-engine-v2 so measurement matches.
  v1.3.49 (2026-06-15): v2 engine — pin proof index-terms row to the page bottom (grid
    auto 1fr + margin-top:auto) so facing pages align; probe measures height:auto so the
    pin never inflates the fit measurement.
  v1.3.48 (2026-06-15): Under the v2 engine (.sdx-engine-v2), neutralise the proof-step
    cram-compaction so the header block matches every other proof page, and balance step
    text / lede / title to avoid orphan last-line words. v2 measures & splits, so the
    cram patch (kept for the default engine) is no longer needed there.
  v1.3.47 (2026-06-14): Added proof-step page compaction so Evidence Mechanism rows fit
    under deployed font metrics and normal browser zoom.
  v1.3.46 (2026-06-14): Added compact desktop proof-page scale for normal browser zoom and
    shorter Cloudflare viewports, keeping the final mechanism row inside the book.
  v1.3.45 (2026-06-13): Mobile content pages min-height 0 -> 60svh so short illustration pages get a
    proper book-page height while text pages still expand past it (and never clip).
  v1.3.44 (2026-06-13): Fixed mobile bottom overflow — text pages are now auto-height (loader JS no
    longer pins a fixed aspect ratio on them), and their size containment is dropped on mobile so the
    box can grow to fit reflowed copy instead of clipping it. Pairs with loader JS v1.1.3.
  v1.3.43 (2026-06-13): Shrunk the cover trigger title (--sdx-book-size-cover-trigger) so long
    pack names no longer dominate the cover. Fixed mobile page overflow: .sb-mobile-page was sized
    min(92vw,28rem) — 92vw is relative to the full viewport, wider than its slide container, so the
    section's overflow:hidden clipped the right edge (text cut off). Now width:100% / max-width:28rem,
    plus overflow-x:hidden on the pager.
*/

.page-viridians-proof-ledger {
  --sdx-book-font-threshold: 'Playfair Display', Georgia, serif;
  --sdx-book-font-review: var(--text-font, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
  --sdx-book-font-witness: 'EB Garamond', Georgia, serif;
  --sdx-book-weight-regular: 400;
  --sdx-book-weight-medium: 500;
  --sdx-book-weight-title: 600;
  --sdx-book-weight-semibold: 700;
  --sdx-book-size-running-head: clamp(0.74rem, 1.72cqh, 0.82rem);
  --sdx-book-size-label: clamp(0.8rem, 1.9cqh, 0.9rem);
  --sdx-book-size-subhead: clamp(0.88rem, 2.3cqh, 1rem);
  --sdx-book-size-body: clamp(0.92rem, 2.85cqh, 0.98rem);
  --sdx-book-size-cover-label: clamp(0.74rem, 1.32vw, 1rem);
  --sdx-book-size-cover-trigger: clamp(1.12rem, 2.45vw, 1.95rem);
  --sdx-book-size-spread-title: clamp(1.04rem, 3.05cqh, 1.28rem);
  --sdx-book-leading-tight: 1.25;
  --sdx-book-leading-body: 1.52;
  --sdx-book-leading-title: 1.16;
  --sdx-book-leading-display: 1.08;
  --sdx-book-track-running-head: 0.13em;
  --sdx-book-track-label: 0.13em;
  --sdx-book-track-neutral: 0;
  --sdx-book-page-padding-x: 1.75rem;
  --sdx-book-page-padding-y: 1.45rem;
  --sdx-book-gutter: 0.65rem;
  --sdx-book-block-gap-sm: 0.48rem;
  --sdx-book-block-gap-md: 0.78rem;
  --sdx-book-block-gap-lg: 1rem;
  --sdx-book-block-gap-xl: 1.5rem;
  --sdx-book-measure-body: 34rem;
  --sdx-book-measure-title: 26rem;
  --sdx-book-measure-label-block: 20rem;
  --sdx-book-measure-index: 28rem;
  --vtr-book-paper:
    radial-gradient(
      ellipse at 12% 24%,
      color-mix(in srgb, var(--page-accent) 7%, transparent) 0%,
      transparent 48%
    ),
    radial-gradient(
      ellipse at 84% 78%,
      color-mix(in srgb, var(--page-primary) 5%, transparent) 0%,
      transparent 46%
    ),
    radial-gradient(
      ellipse at 50% 100%,
      color-mix(in srgb, var(--page-accent) 4%, transparent) 0%,
      transparent 34%
    ),
    linear-gradient(
      180deg,
      color-mix(in srgb, var(--sdx-color-white) 90%, var(--sdx-color-livingtower-warm-sand) 10%) 0%,
      color-mix(in srgb, var(--sdx-color-white) 82%, var(--sdx-color-livingtower-warm-sand) 18%) 100%
    );
  --vtr-book-ink: color-mix(in srgb, var(--page-dark-base) 84%, var(--page-primary) 16%);
  --vtr-book-muted: color-mix(in srgb, var(--vtr-book-ink) 62%, transparent);
  --vtr-book-rule: color-mix(in srgb, var(--page-accent) 46%, var(--page-primary) 54%);
  --vtr-book-surface: color-mix(in srgb, var(--page-dark-base) 82%, var(--page-primary) 18%);
  --sdx-book-surface-cover: var(--vtr-book-surface);
  --sdx-book-surface-paper: var(--vtr-book-paper);
  --sdx-book-surface-ink: var(--vtr-book-ink);
  --sdx-book-surface-muted: var(--vtr-book-muted);
  --sdx-book-surface-rule: color-mix(in srgb, var(--page-accent) 22%, transparent);
  --sdx-book-surface-accent: var(--vtr-book-rule);
  --sdx-book-surface-cover-letter: color-mix(in srgb, #d7ad55 88%, var(--page-dark-base) 12%);
  --sdx-book-surface-cover-letter-shadow: color-mix(in srgb, var(--page-dark-base) 88%, #5b2b12 12%);
  --sdx-book-surface-cover-letter-highlight: color-mix(in srgb, #fff0b2 72%, #d7ad55 28%);
  --book-stage-kicker: var(--sdx-book-size-running-head);
  --book-stage-title: var(--sdx-book-size-spread-title);
  --book-stage-body: var(--sdx-book-size-body);
  --book-stage-support: color-mix(in srgb, var(--sdx-book-surface-ink) 82%, transparent);
  --book-stage-rule: var(--sdx-book-surface-rule);
  --book-stage-surface: var(--sdx-book-surface-paper);
  --book-stage-image-frame: color-mix(in srgb, var(--sdx-color-white) 24%, transparent);
}

.page-viridians-proof-ledger .fb-page-slot,
.page-viridians-proof-ledger .fb-leaf-front,
.page-viridians-proof-ledger .fb-leaf-back {
  --sdx-surface-aged-paper: var(--vtr-book-paper);
}

.page-viridians-proof-ledger .fb-container {
  --fb-blank: transparent;
  --fb-cream: transparent;
}

.page-viridians-proof-ledger .fb-page-left {
  box-shadow: inset 1.5rem 0 2rem -1.25rem color-mix(in srgb, var(--page-accent) 18%, transparent);
}

.page-viridians-proof-ledger .fb-page-right {
  box-shadow: inset -1.5rem 0 2rem -1.25rem color-mix(in srgb, var(--page-accent) 18%, transparent);
}

.page-viridians-proof-ledger #storybook-reader-book[data-sdx-flipbook-state="closed-front"] .fb-page-right,
.page-viridians-proof-ledger #storybook-reader-book[data-sdx-flipbook-transition="opening-front"] .fb-page-right,
.page-viridians-proof-ledger #storybook-reader-book[data-sdx-flipbook-state="closed-front"] .fb-leaf-front,
.page-viridians-proof-ledger #storybook-reader-book[data-sdx-flipbook-transition="opening-front"] .fb-leaf-front,
.page-viridians-proof-ledger #storybook-reader-book[data-sdx-flipbook-state="closed-front"] .fb-leaf-face-content,
.page-viridians-proof-ledger #storybook-reader-book[data-sdx-flipbook-transition="opening-front"] .fb-leaf-face-content {
  background-color: transparent;
  box-shadow: none;
  filter: none;
}

.page-viridians-proof-ledger #storybook-reader-book[data-sdx-flipbook-state="closed-back"] .fb-page-left,
.page-viridians-proof-ledger #storybook-reader-book[data-sdx-flipbook-state="closed-back"] .fb-page-right,
.page-viridians-proof-ledger #storybook-reader-book[data-sdx-flipbook-transition="closing-back"] .fb-page-right,
.page-viridians-proof-ledger #storybook-reader-book[data-sdx-flipbook-state="closed-back"] .fb-leaf-front,
.page-viridians-proof-ledger #storybook-reader-book[data-sdx-flipbook-transition="closing-back"] .fb-leaf-front,
.page-viridians-proof-ledger #storybook-reader-book[data-sdx-flipbook-state="closed-back"] .fb-leaf-face-content,
.page-viridians-proof-ledger #storybook-reader-book[data-sdx-flipbook-transition="closing-back"] .fb-leaf-face-content {
  background-color: transparent;
  box-shadow: none;
  filter: none;
}

.page-viridians-proof-ledger.sdx-storybook-reader {
  /* Match the .container width (the Executive Briefing section below): max 1200px
     with 2rem side gutters → same ~1136px content width, centered. */
  width: min(calc(100vw - 4rem), 1136px);
  max-width: none;
  margin: 3rem auto 6rem;
  /* The TABLE width = the .container / Executive-Briefing width (above). No fixed
     aspect: the fit-viewport JS sets the table HEIGHT to the book + controls and
     sizes the BOOK (book-stage) to fit the viewport, centered on the table. The
     book-stage aspect below is only a no-JS fallback. */
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem 1rem 4.75rem;
  box-sizing: border-box;
  border-radius: 1rem;
  box-shadow: var(--card-shadow-dark, 0 1.5rem 3.5rem color-mix(in srgb, var(--sdx-color-black) 34%, transparent));
  background-image: url('/assets/images/viridians/books/viridians-proof-ledger-table.webp');
  background-size: cover;
  background-position: center center;
  background-color: var(--vtr-book-surface);
}

.page-viridians-proof-ledger .storybook-reader-stage-wrap {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  min-width: 0;
  min-height: 0;
  position: relative;
  z-index: 1;
}

.page-viridians-proof-ledger .storybook-reader-stage {
  width: 100%;
  max-width: 100%;
  padding: 0;
  box-sizing: border-box;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  display: flex;
  justify-content: center;
}

.page-viridians-proof-ledger .storybook-reader-book-stage {
  width: 100%;
  max-width: 100%;
  /* The book's TRUE two-page spread aspect (2 × page 884:1396 = 1768:1396). The
     engine reads this element to size the book, so matching it here makes the book
     fill the width exactly with no side gutters. The section height follows from
     this. */
  aspect-ratio: 1768 / 1396;
  margin: 0 auto;
}

.page-viridians-proof-ledger #storybook-reader-book {
  margin: 0 auto;
  font-family: var(--sdx-book-font-witness);
  color: var(--sdx-book-surface-ink);
  isolation: isolate;
  box-shadow:
    0 2rem 5rem color-mix(in srgb, var(--sdx-color-black) 90%, transparent),
    0 0.75rem 2rem color-mix(in srgb, var(--sdx-color-black) 65%, transparent),
    0 0.25rem 0.5rem color-mix(in srgb, var(--sdx-color-black) 45%, transparent);
}

.page-viridians-proof-ledger #storybook-reader-book[data-sdx-flipbook-state="closed-front"],
.page-viridians-proof-ledger #storybook-reader-book[data-sdx-flipbook-state="closed-back"],
.page-viridians-proof-ledger #storybook-reader-book[data-sdx-flipbook-transition="opening-front"],
.page-viridians-proof-ledger #storybook-reader-book[data-sdx-flipbook-transition="closing-back"],
.page-viridians-proof-ledger #storybook-reader-book[data-sdx-flipbook-transition="closing-backward-to-closed-front"],
.page-viridians-proof-ledger #storybook-reader-book[data-sdx-flipbook-transition="opening-backward-from-closed-back"] {
  box-shadow: none;
}

.page-viridians-proof-ledger #storybook-reader-book::after {
  content: '';
  position: absolute;
  inset: 0 auto 0 50%;
  transform: translateX(-50%);
  width: 4rem;
  height: 100%;
  z-index: 30;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.3s ease;
  background: linear-gradient(
    to right,
    transparent 0%,
    color-mix(in srgb, var(--sdx-color-dark-card) 10%, transparent) 20%,
    color-mix(in srgb, var(--sdx-color-dark-card) 35%, transparent) 45%,
    color-mix(in srgb, var(--sdx-color-dark-card) 55%, transparent) 50%,
    color-mix(in srgb, var(--sdx-color-dark-card) 35%, transparent) 55%,
    color-mix(in srgb, var(--sdx-color-dark-card) 10%, transparent) 80%,
    transparent 100%
  );
}

.page-viridians-proof-ledger #storybook-reader-book[data-sdx-flipbook-state="interior"]::after,
.page-viridians-proof-ledger #storybook-reader-book[data-sdx-flipbook-transition="turning-interior-forward"]::after,
.page-viridians-proof-ledger #storybook-reader-book[data-sdx-flipbook-transition="turning-interior-backward"]::after,
.page-viridians-proof-ledger #storybook-reader-book[data-sdx-flipbook-transition="opening-backward-from-closed-back"]::after {
  opacity: 1;
}

.page-viridians-proof-ledger #storybook-reader-book .fb-leaf-front,
.page-viridians-proof-ledger #storybook-reader-book .fb-leaf-back,
.page-viridians-proof-ledger #storybook-reader-book .fb-leaf-face-base,
.page-viridians-proof-ledger #storybook-reader-book .fb-leaf-face-content {
  position: absolute;
  inset: 0;
}

.page-viridians-proof-ledger .storybook-reader-controls {
  position: absolute;
  bottom: 1.5%;
  left: 50%;
  transform: translateX(-50%);
  z-index: 50;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.375rem;
}

.page-viridians-proof-ledger .storybook-reader-controls-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.7rem;
}

.page-viridians-proof-ledger .storybook-reader-btn {
  appearance: none;
  background: color-mix(in srgb, var(--page-dark-base) 85%, transparent);
  border: 1px solid color-mix(in srgb, var(--page-accent) 52%, transparent);
  color: color-mix(in srgb, var(--page-accent) 74%, var(--sdx-color-white) 26%);
  padding: 0.5rem 1.25rem;
  font-family: var(--sdx-book-font-review);
  font-size: 1rem;
  font-weight: 400;
  letter-spacing: 0.06em;
  border-radius: 2px;
  cursor: pointer;
  white-space: nowrap;
}

.page-viridians-proof-ledger .storybook-reader-btn:hover {
  background-color: color-mix(in srgb, var(--page-dark-base) 78%, var(--page-accent) 22%);
  border-color: color-mix(in srgb, var(--page-accent) 80%, transparent);
}

.page-viridians-proof-ledger .storybook-reader-btn:disabled {
  opacity: 0.25;
  cursor: default;
  pointer-events: none;
}

.page-viridians-proof-ledger .storybook-reader-counter {
  min-width: 4.5rem;
  text-align: center;
  font-family: var(--sdx-book-font-review);
  font-size: 1rem;
  color: color-mix(in srgb, var(--sdx-color-white) 90%, var(--page-accent) 10%);
  letter-spacing: 0.1em;
}

.page-viridians-proof-ledger .storybook-reader-hint {
  font-family: var(--sdx-book-font-review);
  color: color-mix(in srgb, var(--sdx-color-white) 64%, var(--page-accent) 36%);
  font-size: 0.65rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-align: center;
}

.page-viridians-proof-ledger .storybook-reader-state {
  margin: 0;
  white-space: pre-wrap;
  word-break: break-word;
  font-size: 0.875rem;
  line-height: 1.6;
  color: color-mix(in srgb, var(--vtr-book-ink) 82%, transparent);
}

.page-viridians-proof-ledger .uh-page {
  --uh-page-padding-block: 6rem;
  --uh-body-line-height-scale: 1;
  --uh-eyebrow-gap: 0.75rem;
  --uh-title-gap: 1.375rem;
  --uh-body-gap: 1rem;
  --uh-closing-gap: 1.25rem;
  --uh-rule-margin-top: 1.125rem;
  --uh-rule-margin-bottom: 1.25rem;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  padding: var(--uh-page-padding-block) 2.5rem;
  position: relative;
  overflow: hidden;
  box-sizing: border-box;
  color: var(--vtr-book-ink);
}

.page-viridians-proof-ledger .uh-page--title {
  justify-content: center;
}

.page-viridians-proof-ledger .uh-title-main,
.page-viridians-proof-ledger .uh-chapter-title {
  margin: 0;
  color: var(--vtr-book-ink);
}

.page-viridians-proof-ledger .uh-title-sub,
.page-viridians-proof-ledger .uh-eyebrow,
.page-viridians-proof-ledger .uh-end-image-caption {
  color: var(--vtr-book-muted);
}

.page-viridians-proof-ledger .uh-body {
  margin: 0;
  color: color-mix(in srgb, var(--vtr-book-ink) 82%, transparent);
  line-height: 1.8;
}

.page-viridians-proof-ledger .uh-body strong {
  color: var(--vtr-book-ink);
}

.page-viridians-proof-ledger .uh-body + .uh-body {
  margin-top: var(--uh-body-gap);
}

.page-viridians-proof-ledger .uh-rule {
  width: 3.125rem;
  height: 1px;
  margin: var(--uh-rule-margin-top) 0 var(--uh-rule-margin-bottom);
  background: linear-gradient(to right, transparent, var(--vtr-book-rule), transparent);
}

.page-viridians-proof-ledger .uh-rule--end {
  align-self: center;
  margin-left: auto;
  margin-right: auto;
}

.page-viridians-proof-ledger .uh-end-image-page {
  width: 100%;
  height: 100%;
  position: relative;
}

.page-viridians-proof-ledger .uh-end-image-scrim {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(
      circle at center,
      color-mix(in srgb, var(--page-accent) 16%, transparent) 0%,
      transparent 56%
    );
}

.page-viridians-proof-ledger .uh-end-image-img {
  position: absolute;
  inset: 0;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: contain;
}

.page-viridians-proof-ledger .uh-end-image-caption {
  position: absolute;
  right: 1.5rem;
  bottom: 1.25rem;
  left: 1.5rem;
  margin: 0;
  font-family: var(--sdx-book-font-review);
  font-size: var(--sdx-book-size-running-head);
  line-height: var(--sdx-book-leading-tight);
  letter-spacing: var(--sdx-book-track-label);
  text-transform: uppercase;
  text-align: center;
}

.page-viridians-proof-ledger .vtr-cover-overlay {
  position: absolute;
  left: 8%;
  top: 9.75%;
  width: 84%;
  height: 25%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  padding: 0.35rem 0.25rem;
  text-align: center;
  pointer-events: none;
}

.page-viridians-proof-ledger .vtr-cover-kicker,
.page-viridians-proof-ledger .vtr-cover-label {
  margin: 0;
  color: var(--sdx-book-surface-cover-letter);
  font-family: var(--sdx-book-font-threshold);
  text-shadow:
    0 -1px 0 var(--sdx-book-surface-cover-letter-shadow),
    0 1px 0 color-mix(in srgb, var(--sdx-book-surface-cover-letter-highlight) 42%, transparent),
    0 0.06rem 0.04rem color-mix(in srgb, var(--sdx-color-black) 64%, transparent),
    0 0.18rem 0.34rem color-mix(in srgb, var(--sdx-color-black) 48%, transparent);
}

.page-viridians-proof-ledger .vtr-cover-kicker {
  font-size: var(--sdx-book-size-cover-label);
  letter-spacing: 0.16em;
  line-height: var(--sdx-book-leading-tight);
  text-transform: uppercase;
  opacity: 0.92;
}

.page-viridians-proof-ledger .vtr-cover-label {
  margin-top: 0.34rem;
  width: 100%;
  max-width: 100%;
  font-size: var(--sdx-book-size-cover-trigger);
  font-weight: var(--sdx-book-weight-semibold);
  line-height: 1.02;
  -webkit-text-stroke: 0.015em color-mix(in srgb, #fff0b2 18%, transparent);
  overflow-wrap: anywhere;
  /* Even out the wrap so a single word ("Pack") isn't orphaned on its own line. */
  text-wrap: balance;
}

.page-viridians-proof-ledger .vtr-ledger-page {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  padding: 1.05rem 1.15rem 1rem;
  box-sizing: border-box;
  color: var(--sdx-book-surface-ink);
  position: relative;
  overflow: hidden;
  background: var(--book-stage-surface);
}

.page-viridians-proof-ledger .vtr-ledger-page--left {
  justify-content: flex-start;
}

.page-viridians-proof-ledger .vtr-ledger-page::after {
  content: "";
  position: absolute;
  inset: 0.5rem;
  border: 1px solid color-mix(in srgb, var(--page-accent) 18%, transparent);
  pointer-events: none;
}

.page-viridians-proof-ledger .vtr-ledger-kicker {
  flex: 0 0 auto;
  position: relative;
  z-index: 1;
  margin-bottom: 0.45rem;
  padding-bottom: 0.35rem;
  text-align: left;
  color: var(--vtr-book-muted);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  border-bottom: 1px solid color-mix(in srgb, var(--page-accent) 18%, transparent);
}

.page-viridians-proof-ledger .vtr-ledger-eyebrow,
.page-viridians-proof-ledger .vtr-ledger-folio {
  margin: 0;
  color: var(--vtr-book-muted);
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.page-viridians-proof-ledger .vtr-ledger-title,
.page-viridians-proof-ledger .vtr-ledger-heading,
.page-viridians-proof-ledger .vtr-ledger-grid-title {
  margin: 0;
  color: var(--vtr-book-ink);
}

.page-viridians-proof-ledger .vtr-ledger-title {
  font-size: clamp(0.95rem, 1.1vw, 1.18rem);
  line-height: 1.05;
  max-width: none;
}

.page-viridians-proof-ledger .vtr-ledger-intro,
.page-viridians-proof-ledger .vtr-ledger-body {
  margin: 0;
  color: color-mix(in srgb, var(--vtr-book-ink) 84%, transparent);
  line-height: 1.44;
}

.page-viridians-proof-ledger .vtr-ledger-intro {
  font-size: 0.62rem;
  max-width: 40ch;
}

.page-viridians-proof-ledger .vtr-ledger-grid-title {
  position: relative;
  z-index: 1;
  margin: 0 0 0.45rem;
  font-size: 0.88rem;
  line-height: 1.1;
  letter-spacing: 0.03em;
}

.page-viridians-proof-ledger .vtr-ledger-kicker .vtr-ledger-eyebrow,
.page-viridians-proof-ledger .vtr-ledger-kicker .vtr-ledger-running-head {
  margin: 0;
  font-size: 0.55rem;
  line-height: 1.2;
}

.page-viridians-proof-ledger .vtr-ledger-overview {
  flex: 0 0 auto;
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(4rem, 5.25rem);
  align-items: start;
  gap: 0.55rem;
  margin-bottom: 0.45rem;
}

.page-viridians-proof-ledger .vtr-ledger-overview-copy {
  display: grid;
  gap: 0.28rem;
}

.page-viridians-proof-ledger .vtr-ledger-running-label {
  margin: 0;
  color: var(--vtr-book-muted);
  font-size: 0.52rem;
  letter-spacing: 0.14em;
  line-height: 1.2;
  text-transform: uppercase;
}

.page-viridians-proof-ledger .vtr-ledger-grid {
  flex: 1 1 auto;
  min-height: 0;
  display: grid;
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: 0.45rem;
  position: relative;
  z-index: 1;
  align-content: stretch;
}

.page-viridians-proof-ledger .vtr-ledger-panel {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  min-height: 0;
  height: 100%;
  gap: 0.2rem;
  padding: 0.42rem 0.52rem 0.46rem;
  border: 1px solid color-mix(in srgb, var(--page-accent) 14%, transparent);
  box-shadow: inset 0 0 0 1px var(--book-stage-image-frame);
  background:
    linear-gradient(
      180deg,
      color-mix(in srgb, var(--sdx-color-white) 74%, transparent) 0%,
      color-mix(in srgb, var(--sdx-color-white) 36%, transparent) 100%
    ),
    color-mix(in srgb, var(--sdx-color-white) 80%, var(--sdx-color-livingtower-warm-sand) 20%);
}

.page-viridians-proof-ledger .vtr-ledger-heading {
  font-size: 0.6rem;
  line-height: 1.15;
}

.page-viridians-proof-ledger .vtr-ledger-folio,
.page-viridians-proof-ledger .vtr-ledger-index,
.page-viridians-proof-ledger .vtr-ledger-running-head,
.page-viridians-proof-ledger .vtr-ledger-running-label {
  font-size: 0.48rem;
}

.page-viridians-proof-ledger .vtr-ledger-body {
  font-size: 0.46rem;
  line-height: 1.28;
}

.page-viridians-proof-ledger .vtr-ledger-index {
  margin: auto 0 0;
  padding-top: 0.25rem;
  border-top: 1px solid color-mix(in srgb, var(--page-accent) 16%, transparent);
  color: var(--vtr-book-muted);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.page-viridians-proof-ledger .vtr-ledger-illustration {
  width: 100%;
  margin: 0;
  align-self: stretch;
  justify-self: stretch;
  display: grid;
  place-items: center;
  min-height: 0;
  padding: 0.6rem;
  border: 1px solid color-mix(in srgb, var(--page-accent) 14%, transparent);
  background:
    linear-gradient(
      180deg,
      color-mix(in srgb, var(--sdx-color-white) 70%, transparent) 0%,
      color-mix(in srgb, var(--sdx-color-white) 34%, transparent) 100%
    ),
    color-mix(in srgb, var(--sdx-color-white) 76%, var(--sdx-color-livingtower-warm-sand) 24%);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--sdx-color-white) 20%, transparent);
  opacity: 1;
  z-index: 0;
}

.page-viridians-proof-ledger .vtr-ledger-illustration img {
  display: block;
  width: min(100%, 11rem);
  height: auto;
  max-height: 100%;
  object-fit: contain;
  opacity: 0.45;
  mix-blend-mode: multiply;
}

.page-viridians-proof-ledger .vtr-proof-page {
  width: 100%;
  height: 100%;
  display: grid;
  grid-template-rows: auto auto;
  align-content: start;
  gap: var(--sdx-book-block-gap-md);
  padding: var(--sdx-book-page-padding-y) var(--sdx-book-page-padding-x) 1.35rem;
  box-sizing: border-box;
  container-type: size;
  font-family: var(--sdx-book-font-witness);
  color: var(--sdx-book-surface-ink);
  position: relative;
  overflow: hidden;
  background: var(--book-stage-surface);
}

.page-viridians-proof-ledger .vtr-proof-page::after {
  content: "";
  position: absolute;
  inset: 1.1rem;
  border: 1px solid var(--book-stage-rule);
  pointer-events: none;
}

.page-viridians-proof-ledger .vtr-proof-header,
.page-viridians-proof-ledger .vtr-proof-main,
.page-viridians-proof-ledger .vtr-proof-footer {
  position: relative;
  z-index: 1;
}

.page-viridians-proof-ledger .vtr-proof-header {
  padding-bottom: 0.55rem;
  border-bottom: 1px solid var(--book-stage-rule);
}

.page-viridians-proof-ledger .vtr-proof-eyebrow,
.page-viridians-proof-ledger .vtr-proof-running-head,
.page-viridians-proof-ledger .vtr-proof-family-label,
.page-viridians-proof-ledger .vtr-proof-overview-label,
.page-viridians-proof-ledger .vtr-proof-footer,
.page-viridians-proof-ledger .vtr-proof-index-terms {
  margin: 0;
  color: var(--sdx-book-surface-muted);
  font-family: var(--sdx-book-font-review);
  font-weight: var(--sdx-book-weight-medium);
  letter-spacing: var(--sdx-book-track-running-head);
  line-height: var(--sdx-book-leading-tight);
  text-transform: uppercase;
}

.page-viridians-proof-ledger .vtr-proof-eyebrow {
  font-size: var(--sdx-book-size-label);
}

.page-viridians-proof-ledger .vtr-proof-running-head {
  margin-top: 0.25rem;
  font-size: var(--sdx-book-size-running-head);
}

.page-viridians-proof-ledger .vtr-proof-main {
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.page-viridians-proof-ledger .vtr-proof-title {
  margin: 0;
  max-width: var(--sdx-book-measure-title);
  font-family: var(--sdx-book-font-threshold);
  color: var(--sdx-book-surface-ink);
  font-size: var(--book-stage-title);
  font-weight: var(--sdx-book-weight-title);
  line-height: var(--sdx-book-leading-title);
  letter-spacing: var(--sdx-book-track-neutral);
}

.page-viridians-proof-ledger .vtr-proof-family-label {
  margin-bottom: 0.55rem;
  font-size: var(--sdx-book-size-label);
}

.page-viridians-proof-ledger .vtr-proof-lede {
  margin: 0.88rem 0 0;
  max-width: var(--sdx-book-measure-body);
  color: color-mix(in srgb, var(--sdx-book-surface-ink) 86%, transparent);
  font-size: var(--sdx-book-size-body);
  line-height: 1.58;
}

.page-viridians-proof-ledger .vtr-proof-copy {
  margin-top: 0.95rem;
  display: grid;
  gap: 0.95rem;
}

.page-viridians-proof-ledger .vtr-proof-facts {
  margin: 1rem 0 0;
  display: grid;
  gap: 0;
  max-width: var(--sdx-book-measure-body);
  border-top: 1px solid var(--book-stage-rule);
}

.page-viridians-proof-ledger .vtr-proof-fact {
  display: grid;
  grid-template-columns: minmax(6.6rem, 35%) minmax(0, 1fr);
  gap: 0.65rem;
  padding: 0.5rem 0;
  border-bottom: 1px solid color-mix(in srgb, var(--sdx-book-surface-accent) 16%, transparent);
}

.page-viridians-proof-ledger .vtr-proof-fact dt,
.page-viridians-proof-ledger .vtr-proof-fact dd {
  margin: 0;
}

.page-viridians-proof-ledger .vtr-proof-fact dt {
  color: var(--sdx-book-surface-muted);
  font-family: var(--sdx-book-font-review);
  font-size: var(--sdx-book-size-running-head);
  letter-spacing: 0.11em;
  line-height: var(--sdx-book-leading-tight);
  text-transform: uppercase;
}

.page-viridians-proof-ledger .vtr-proof-fact dd {
  color: color-mix(in srgb, var(--sdx-book-surface-ink) 88%, transparent);
  font-size: var(--sdx-book-size-body);
  line-height: var(--sdx-book-leading-body);
}

.page-viridians-proof-ledger .vtr-proof-steps {
  list-style: none;
  counter-reset: vtr-proof-step;
  margin: 1rem 0 0;
  padding: 0;
  display: grid;
  gap: 0;
  max-width: var(--sdx-book-measure-body);
  border-top: 1px solid var(--book-stage-rule);
}

.page-viridians-proof-ledger .vtr-proof-steps li {
  counter-increment: vtr-proof-step;
  display: grid;
  grid-template-columns: 2.2rem minmax(5.25rem, 31%) minmax(0, 1fr);
  gap: 0.65rem;
  align-items: baseline;
  padding: 0.52rem 0;
  border-bottom: 1px solid color-mix(in srgb, var(--sdx-book-surface-accent) 16%, transparent);
}

.page-viridians-proof-ledger .vtr-proof-steps li::before {
  content: counter(vtr-proof-step, decimal-leading-zero);
  color: var(--sdx-book-surface-muted);
  font-family: var(--sdx-book-font-review);
  font-size: var(--sdx-book-size-label);
  letter-spacing: var(--sdx-book-track-label);
  line-height: var(--sdx-book-leading-tight);
}

.page-viridians-proof-ledger .vtr-proof-step-label {
  color: var(--sdx-book-surface-muted);
  font-family: var(--sdx-book-font-review);
  font-size: var(--sdx-book-size-label);
  letter-spacing: var(--sdx-book-track-label);
  line-height: var(--sdx-book-leading-tight);
  text-transform: uppercase;
}

.page-viridians-proof-ledger .vtr-proof-step-text {
  color: color-mix(in srgb, var(--sdx-book-surface-ink) 88%, transparent);
  font-size: var(--sdx-book-size-body);
  line-height: 1.38;
}

.page-viridians-proof-ledger .vtr-proof-copy p,
.page-viridians-proof-ledger .vtr-proof-detail p,
.page-viridians-proof-ledger .vtr-proof-overview-item p {
  margin: 0;
  max-width: var(--sdx-book-measure-body);
  color: var(--book-stage-support);
  font-size: var(--book-stage-body);
  line-height: var(--sdx-book-leading-body);
}

.page-viridians-proof-ledger .vtr-proof-mark {
  margin: 1.5rem auto 0;
  width: min(52%, 12rem);
  opacity: 0.34;
  mix-blend-mode: multiply;
}

.page-viridians-proof-ledger .vtr-proof-mark img {
  display: block;
  width: 100%;
  height: auto;
}

.page-viridians-proof-ledger .vtr-proof-overview-grid {
  margin-top: 1.05rem;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  min-height: 0;
}

.page-viridians-proof-ledger .vtr-proof-overview-item,
.page-viridians-proof-ledger .vtr-proof-detail {
  padding: 0.86rem 0 0.88rem;
  border: 0;
  border-top: 1px solid var(--book-stage-rule);
  background: transparent;
}

.page-viridians-proof-ledger .vtr-proof-overview-item h4,
.page-viridians-proof-ledger .vtr-proof-detail h4 {
  margin: 0.1rem 0 0.42rem;
  font-family: var(--sdx-book-font-threshold);
  color: var(--sdx-book-surface-ink);
  font-size: var(--sdx-book-size-subhead);
  line-height: 1.22;
}

.page-viridians-proof-ledger .vtr-proof-overview-label {
  font-size: var(--sdx-book-size-running-head);
}

.page-viridians-proof-ledger .vtr-proof-detail-list {
  margin-top: 1.18rem;
  display: grid;
  gap: 0;
}

.page-viridians-proof-ledger .vtr-proof-index-terms {
  list-style: none;
  margin: 0.92rem 0 0;
  padding: 0.72rem 0 0;
  border-top: 1px solid color-mix(in srgb, var(--sdx-book-surface-accent) 18%, transparent);
  font-size: var(--sdx-book-size-running-head);
}

.page-viridians-proof-ledger .vtr-proof-index-terms li {
  margin: 0;
}

.page-viridians-proof-ledger .vtr-proof-footer {
  display: none;
}

.page-viridians-proof-ledger .vtr-proof-page--intro .vtr-proof-main {
  justify-content: flex-start;
}

.page-viridians-proof-ledger .vtr-proof-page--family .vtr-proof-lede {
  font-size: var(--sdx-book-size-body);
}

.page-viridians-proof-ledger .vtr-proof-page--has-steps {
  --sdx-book-size-running-head: clamp(0.64rem, 1.4cqh, 0.74rem);
  --sdx-book-size-label: clamp(0.66rem, 1.5cqh, 0.76rem);
  --sdx-book-size-body: clamp(0.78rem, 2.12cqh, 0.88rem);
  --sdx-book-size-spread-title: clamp(0.94rem, 2.48cqh, 1.08rem);
  --sdx-book-block-gap-md: 0.48rem;
  padding: 1rem 1.28rem 0.78rem;
}

.page-viridians-proof-ledger .vtr-proof-page--has-steps .vtr-proof-header {
  padding-bottom: 0.42rem;
}

.page-viridians-proof-ledger .vtr-proof-page--has-steps .vtr-proof-title {
  line-height: 1.08;
}

.page-viridians-proof-ledger .vtr-proof-page--has-steps .vtr-proof-lede {
  margin-top: 0.5rem;
  line-height: 1.34;
}

.page-viridians-proof-ledger .vtr-proof-page--has-steps .vtr-proof-steps {
  margin-top: 0.52rem;
}

.page-viridians-proof-ledger .vtr-proof-page--has-steps .vtr-proof-steps li {
  grid-template-columns: 1.55rem minmax(4.9rem, 29%) minmax(0, 1fr);
  gap: 0.38rem;
  align-items: start;
  padding: 0.3rem 0;
}

.page-viridians-proof-ledger .vtr-proof-page--has-steps .vtr-proof-steps li::before,
.page-viridians-proof-ledger .vtr-proof-page--has-steps .vtr-proof-step-label {
  font-size: clamp(0.58rem, 1.22cqh, 0.68rem);
  letter-spacing: 0.105em;
  line-height: 1.12;
}

.page-viridians-proof-ledger .vtr-proof-page--has-steps .vtr-proof-step-text {
  font-size: var(--sdx-book-size-body);
  line-height: 1.22;
}

@media (max-height: 860px) and (min-width: 48.001rem) {
  .page-viridians-proof-ledger {
    --sdx-book-size-running-head: clamp(0.68rem, 1.52cqh, 0.76rem);
    --sdx-book-size-label: clamp(0.72rem, 1.68cqh, 0.82rem);
    --sdx-book-size-subhead: clamp(0.8rem, 2.04cqh, 0.92rem);
    --sdx-book-size-body: clamp(0.84rem, 2.42cqh, 0.93rem);
    --sdx-book-size-spread-title: clamp(0.98rem, 2.68cqh, 1.16rem);
    --sdx-book-page-padding-x: 1.45rem;
    --sdx-book-page-padding-y: 1.12rem;
    --sdx-book-block-gap-md: 0.58rem;
  }

  .page-viridians-proof-ledger .vtr-proof-header {
    padding-bottom: 0.44rem;
  }

  .page-viridians-proof-ledger .vtr-proof-lede,
  .page-viridians-proof-ledger .vtr-proof-page--family .vtr-proof-lede {
    margin-top: 0.66rem;
    line-height: 1.44;
  }

  .page-viridians-proof-ledger .vtr-proof-steps {
    margin-top: 0.74rem;
  }

  .page-viridians-proof-ledger .vtr-proof-steps li {
    grid-template-columns: 1.95rem minmax(4.9rem, 30%) minmax(0, 1fr);
    gap: 0.5rem;
    padding: 0.4rem 0;
  }

  .page-viridians-proof-ledger .vtr-proof-step-text {
    line-height: 1.3;
  }
}

@media (max-height: 700px) and (min-width: 48.001rem) {
  .page-viridians-proof-ledger .vtr-proof-page {
    gap: 0.48rem;
    padding: 0.85rem 1.35rem 0.78rem;
  }

  .page-viridians-proof-ledger .vtr-proof-header {
    padding-bottom: 0.38rem;
  }

  .page-viridians-proof-ledger .vtr-proof-title {
    font-size: var(--book-stage-title);
    line-height: 1.14;
  }

  .page-viridians-proof-ledger .vtr-proof-lede,
  .page-viridians-proof-ledger .vtr-proof-page--family .vtr-proof-lede {
    margin-top: 0.52rem;
    font-size: var(--sdx-book-size-body);
    line-height: 1.42;
  }

  .page-viridians-proof-ledger .vtr-proof-copy {
    margin-top: 0.68rem;
    gap: 0.62rem;
  }

  .page-viridians-proof-ledger .vtr-proof-facts {
    margin-top: 0.68rem;
  }

  .page-viridians-proof-ledger .vtr-proof-steps {
    margin-top: 0.68rem;
  }

  .page-viridians-proof-ledger .vtr-proof-steps li {
    grid-template-columns: 1.8rem minmax(4.4rem, 30%) minmax(0, 1fr);
    gap: 0.42rem;
    padding: 0.36rem 0;
  }

  .page-viridians-proof-ledger .vtr-proof-step-text {
    font-size: var(--sdx-book-size-body);
    line-height: 1.34;
  }

  .page-viridians-proof-ledger .vtr-proof-fact {
    grid-template-columns: minmax(5.8rem, 35%) minmax(0, 1fr);
    gap: 0.42rem;
    padding: 0.36rem 0;
  }

  .page-viridians-proof-ledger .vtr-proof-fact dd {
    font-size: var(--sdx-book-size-body);
    line-height: 1.34;
  }

  .page-viridians-proof-ledger .vtr-proof-copy p,
  .page-viridians-proof-ledger .vtr-proof-detail p,
  .page-viridians-proof-ledger .vtr-proof-overview-item p {
    font-size: var(--sdx-book-size-body);
    line-height: 1.34;
  }

  .page-viridians-proof-ledger .vtr-proof-overview-grid,
  .page-viridians-proof-ledger .vtr-proof-detail-list {
    margin-top: 0.52rem;
  }

  .page-viridians-proof-ledger .vtr-proof-overview-item,
  .page-viridians-proof-ledger .vtr-proof-detail {
    padding: 0.32rem 0 0.34rem;
  }

  .page-viridians-proof-ledger .vtr-proof-overview-item h4,
  .page-viridians-proof-ledger .vtr-proof-detail h4 {
    margin-bottom: 0.14rem;
    font-size: clamp(0.74rem, 2.02cqh, 0.86rem);
  }

  .page-viridians-proof-ledger .vtr-proof-page--overview .vtr-proof-title {
    font-size: var(--book-stage-title);
  }

  .page-viridians-proof-ledger .vtr-proof-overview-label {
    font-size: clamp(0.42rem, 1.15cqh, 0.52rem);
  }

  .page-viridians-proof-ledger .vtr-proof-index-terms {
    margin-top: 0.62rem;
    padding-top: 0.48rem;
  }
}

.page-viridians-proof-ledger .vtr-foundation-page {
  width: 100%;
  height: 100%;
  position: relative;
  overflow: hidden;
  box-sizing: border-box;
  color: var(--vtr-book-ink);
}

.page-viridians-proof-ledger .vtr-foundation-page::after {
  content: "";
  position: absolute;
  inset: 1.5rem 1.25rem;
  border: 1px solid color-mix(in srgb, var(--sdx-book-surface-accent) 24%, transparent);
  pointer-events: none;
}

.page-viridians-proof-ledger .vtr-foundation-transition-page {
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  padding: 3rem 2.25rem 2.75rem;
  box-sizing: border-box;
  color: var(--sdx-book-surface-ink);
  position: relative;
  overflow: hidden;
  background: var(--book-stage-surface);
}

.page-viridians-proof-ledger .vtr-foundation-transition-page::after {
  content: "";
  position: absolute;
  inset: 1.5rem 1.25rem;
  border: 1px solid color-mix(in srgb, var(--sdx-book-surface-accent) 18%, transparent);
  pointer-events: none;
}

.page-viridians-proof-ledger .vtr-foundation-transition-plate {
  width: min(88%, 22rem);
  margin: 0 auto;
  display: grid;
  justify-items: center;
  gap: 1rem;
  transform: translateY(2%);
  position: relative;
  z-index: 1;
}

.page-viridians-proof-ledger .vtr-foundation-transition-plate img {
  display: block;
  width: 100%;
  height: auto;
  opacity: 0.82;
  mix-blend-mode: multiply;
}

.page-viridians-proof-ledger .vtr-foundation-transition-caption {
  max-width: 15rem;
  margin: 0;
  color: var(--sdx-book-surface-muted);
  font-family: var(--sdx-book-font-review);
  font-size: var(--sdx-book-size-running-head);
  line-height: var(--sdx-book-leading-tight);
  letter-spacing: var(--sdx-book-track-label);
  text-align: center;
  text-transform: uppercase;
}

.page-viridians-proof-ledger .vtr-foundation-page--image {
  padding: 2rem;
}

.page-viridians-proof-ledger .vtr-foundation-plate {
  position: relative;
  width: 100%;
  height: 100%;
  margin: 0;
  display: grid;
  place-items: center;
}

.page-viridians-proof-ledger .vtr-foundation-plate img {
  display: block;
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  filter: drop-shadow(0 1.25rem 1.75rem color-mix(in srgb, var(--sdx-color-black) 18%, transparent));
}

.page-viridians-proof-ledger .vtr-foundation-caption {
  position: absolute;
  right: 1rem;
  bottom: 0.75rem;
  left: 1rem;
  margin: 0;
  text-align: center;
  color: var(--sdx-book-surface-muted);
  font-family: var(--sdx-book-font-review);
  font-size: var(--sdx-book-size-running-head);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.page-viridians-proof-ledger .vtr-foundation-page--text {
  display: grid;
  grid-template-rows: auto auto 1fr;
  align-content: start;
  gap: 0.95rem;
  padding: 3.25rem 2.25rem 2.5rem;
}

.page-viridians-proof-ledger .vtr-foundation-header {
  padding-bottom: 0.55rem;
  border-bottom: 1px solid var(--book-stage-rule);
}

.page-viridians-proof-ledger .vtr-foundation-header,
.page-viridians-proof-ledger .vtr-foundation-title,
.page-viridians-proof-ledger .vtr-foundation-copy {
  position: relative;
  z-index: 1;
}

.page-viridians-proof-ledger .vtr-foundation-eyebrow {
  margin: 0;
  color: var(--sdx-book-surface-muted);
  font-family: var(--sdx-book-font-review);
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.page-viridians-proof-ledger .vtr-foundation-title {
  margin: 0.28rem 0 0;
  max-width: var(--sdx-book-measure-title);
  color: var(--sdx-book-surface-ink);
  font-family: var(--sdx-book-font-threshold);
  font-size: var(--book-stage-title);
  font-weight: var(--sdx-book-weight-title);
  line-height: var(--sdx-book-leading-title);
}

.page-viridians-proof-ledger .vtr-foundation-copy {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.page-viridians-proof-ledger .vtr-foundation-copy .uh-body {
  margin: 0;
  color: color-mix(in srgb, var(--sdx-book-surface-ink) 88%, transparent);
  font-family: var(--sdx-book-font-witness);
  font-size: var(--book-stage-body);
  line-height: var(--sdx-book-leading-body);
}

.page-viridians-proof-ledger .vtr-foundation-copy .uh-body + .uh-body {
  margin-top: 1rem;
}

.page-viridians-proof-ledger .vtr-foundation-pillar-link {
  color: var(--sdx-book-surface-ink);
  font-family: var(--sdx-book-font-threshold);
  font-weight: var(--sdx-book-weight-title);
  text-decoration: underline;
  text-decoration-color: color-mix(in srgb, var(--sdx-book-surface-accent) 56%, transparent);
  text-decoration-thickness: 0.06em;
  text-underline-offset: 0.15em;
}

.page-viridians-proof-ledger .vtr-foundation-pillar-link:hover,
.page-viridians-proof-ledger .vtr-foundation-pillar-link:focus-visible {
  color: var(--sdx-book-surface-link, var(--sdx-book-surface-ink));
  text-decoration-color: currentColor;
}

.page-viridians-proof-ledger .vtr-foundation-copy .uh-closing {
  margin-top: 1.5rem;
}

.page-viridians-proof-ledger .sb-mobile-pager {
  width: 100%;
  height: 100%;
  overflow-y: auto;
  overflow-x: hidden;
  scroll-snap-type: y mandatory;
  scroll-behavior: smooth;
  padding: 1rem 0;
  box-sizing: border-box;
}

.page-viridians-proof-ledger .sb-mobile-pager[hidden] {
  display: none;
}

.page-viridians-proof-ledger .sb-mobile-slide {
  min-height: 100%;
  display: grid;
  place-items: center;
  scroll-snap-align: start;
  padding: 1rem 1rem 2rem;
  box-sizing: border-box;
}

.page-viridians-proof-ledger .sb-mobile-page {
  /* Size to the SLIDE (its container), not 92vw. 92vw is relative to the full viewport, but the
     section is only 100vw-2rem and the slide adds 1rem padding each side — so a 92vw card was wider
     than its container and the section's overflow:hidden clipped its right edge (text cut off). */
  width: 100%;
  max-width: 28rem;
  box-sizing: border-box;
  border-radius: 0.875rem;
  overflow: hidden;
  /* Positioned ancestor for the cover's absolutely-positioned .vtr-cover-overlay
     (the title). Without it the title escaped the cover page and did not show on
     mobile — mirrors the working .page-reporters .sb-mobile-page pattern. */
  position: relative;
  background: var(--book-stage-surface);
  box-shadow:
    0 1.25rem 2.5rem color-mix(in srgb, var(--page-dark-base) 20%, transparent);
}

.page-viridians-proof-ledger .sb-mobile-slide--cover .sb-mobile-page,
.page-viridians-proof-ledger .sb-mobile-slide--backcover .sb-mobile-page {
  background-color: transparent;
  box-shadow:
    0 1.5rem 3rem color-mix(in srgb, var(--page-dark-base) 30%, transparent);
}

/* The mobile pager (loader buildMobilePager) sets inline height:100% on each
   card's first child so flow pages fill the fixed-height card. The cover's first
   child is the absolutely-positioned title overlay, not a flow page — height:100%
   combined with top:9.75% + flex-centering pushed the title down to ~60% of the
   cover. Restore the designed top band (CSS height:25%, beating the inline value). */
.page-viridians-proof-ledger .sb-mobile-slide--cover .vtr-cover-overlay {
  top: 20%;
  height: 25% !important;
}

/* Cover crop fix. Keep the cover card at the uniform book-page height (so it stays
   the SAME size as the back cover and interior pages — not shrunk). The front-cover
   art (850×1266 ≈ 0.671) is wider than the card (884:1396 ≈ 0.633); the surface's
   "auto 100%" sizing made it overflow and overflow:hidden clipped the ornate side
   border. background-size:contain shows the whole cover (all four corners) at full
   card width, with at most a hairline band top/bottom. Applied to the back cover
   too so it shows whole and uncropped at the same uniform card size. */
.page-viridians-proof-ledger .sb-mobile-slide--cover .sb-mobile-page,
.page-viridians-proof-ledger .sb-mobile-slide--backcover .sb-mobile-page {
  background-size: contain !important;
}

.page-viridians-proof-ledger .vtr-ledger-mobile {
  display: grid;
  gap: 1rem;
  padding: 2rem 1.25rem;
  color: var(--vtr-book-ink);
}

.page-viridians-proof-ledger .vtr-ledger-mobile-header {
  display: grid;
  gap: 0.5rem;
}

.page-viridians-proof-ledger .vtr-ledger-mobile-panel {
  display: grid;
  gap: 0.5rem;
  padding: 1rem;
  border: 1px solid color-mix(in srgb, var(--page-accent) 18%, transparent);
  background: color-mix(in srgb, var(--sdx-color-white) 28%, transparent);
}

.page-viridians-proof-ledger .sb-mobile-dots {
  position: absolute;
  right: 0.75rem;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  z-index: 4;
}

.page-viridians-proof-ledger .sb-mobile-dot {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 999rem;
  background: color-mix(in srgb, var(--sdx-color-white) 28%, transparent);
}

.page-viridians-proof-ledger .sb-mobile-dot--active {
  background: color-mix(in srgb, var(--page-accent) 82%, var(--sdx-color-white) 18%);
}

@media (max-width: 48rem) {
  .page-viridians-proof-ledger.sdx-storybook-reader {
    aspect-ratio: auto;
    min-height: 42rem;
    margin: 2.5rem auto 5rem;
  }

  .page-viridians-proof-ledger .storybook-reader-stage-wrap,
  .page-viridians-proof-ledger .storybook-reader-controls,
  .page-viridians-proof-ledger .storybook-reader-state {
    display: none !important;
  }

  .page-viridians-proof-ledger .uh-end-image-scrim {
    display: none;
  }

  .page-viridians-proof-ledger .uh-page {
    padding: 2rem 1.25rem;
  }

  .page-viridians-proof-ledger .uh-end-image-caption {
    right: 1rem;
    left: 1rem;
    bottom: 0.75rem;
  }

  /* Mobile text pages grow to fit their copy (loader JS leaves them auto-height), so the bottom is
     never clipped. container-type:size collapses an auto-height box, so drop the size containment
     here; the cqh-based fonts then fall back to their max clamp, which reads fine on a phone. */
  .page-viridians-proof-ledger .sb-mobile-page .vtr-proof-page,
  .page-viridians-proof-ledger .sb-mobile-page .uh-page,
  .page-viridians-proof-ledger .sb-mobile-page .vtr-foundation-page,
  .page-viridians-proof-ledger .sb-mobile-page .vtr-foundation-transition-page,
  .page-viridians-proof-ledger .sb-mobile-page .vtr-ledger-page {
    height: auto;
    /* A minimum that still expands: short pages (illustrations) get a comfortable book-page height;
       text-heavy pages grow taller than this and are never clipped. */
    min-height: 60svh;
    container-type: normal;
    overflow: visible;
  }
}

/* ──────────────────────────────────────────────────────────────────────────
   v2 engine refinements (.sdx-engine-v2)

   The v2 modular engine MEASURES proof pages and SPLITS steps/facts across
   pages, so the "--has-steps" cram-compaction (which shrank the header, padding
   and type so 5 rows would fit one page) is no longer needed here. It is kept
   for the default engine. Under v2 we neutralise it so the header block is the
   same size as every other proof page (titles align across a spread), and we
   balance multi-line copy so no single word is left orphaned on its own line.

   These rules also apply to the v2 measurement probe (the loader tags the probe
   scope with .sdx-engine-v2), so measurement still equals render.
   ────────────────────────────────────────────────────────────────────────── */

.sdx-engine-v2 .vtr-proof-page--has-steps {
  /* inherit the base proof-page tokens instead of the shrunk has-steps ones */
  --sdx-book-size-running-head: inherit;
  --sdx-book-size-label: inherit;
  --sdx-book-size-body: inherit;
  --sdx-book-block-gap-md: inherit;
  /* match the base .vtr-proof-page padding */
  padding: var(--sdx-book-page-padding-y) var(--sdx-book-page-padding-x) 1.35rem;
}

.sdx-engine-v2 .vtr-proof-page--has-steps .vtr-proof-header {
  padding-bottom: 0.55rem;            /* base header spacing */
}
.sdx-engine-v2 .vtr-proof-page--has-steps .vtr-proof-title {
  line-height: var(--sdx-book-leading-title);
}
.sdx-engine-v2 .vtr-proof-page--has-steps .vtr-proof-lede {
  margin: 0.88rem 0 0;
  line-height: 1.58;
}
.sdx-engine-v2 .vtr-proof-page--has-steps .vtr-proof-steps {
  margin-top: 1rem;                   /* base steps spacing */
}

/* Restore the base step-row geometry + type under v2 (no cram). */
.sdx-engine-v2 .vtr-proof-page--has-steps .vtr-proof-steps li {
  grid-template-columns: 2.2rem minmax(5.25rem, 31%) minmax(0, 1fr);
  gap: 0.65rem;
  align-items: baseline;
  padding: 0.52rem 0;
}
.sdx-engine-v2 .vtr-proof-page--has-steps .vtr-proof-steps li::before,
.sdx-engine-v2 .vtr-proof-page--has-steps .vtr-proof-step-label {
  font-size: var(--sdx-book-size-label);
  letter-spacing: var(--sdx-book-track-label);
  line-height: var(--sdx-book-leading-tight);
}
.sdx-engine-v2 .vtr-proof-page--has-steps .vtr-proof-step-text {
  font-size: var(--sdx-book-size-body);
  line-height: 1.38;
}

/* Bottom row: the index-terms footer is hidden on proof pages (cleaner, and
   avoids the inconsistent "some show, some don't" across the spread). The proof
   probe carries .sdx-engine-v2, so display:none zeroes its height in measurement
   too — pagination is unaffected. (.vtr-proof-footer is already display:none.) */
.sdx-engine-v2 .vtr-proof-index-terms {
  display: none;
}

/* FUNDAMENTAL FIX: stable proof text size, independent of page height.
   The proof tokens were sized with clamp(min, X·cqh, max) — container-query-height
   units — so text grew/shrank with the page height (same defect class as the
   original Cloudflare layout bug, applied to font size). Under v2 we pin them to
   fixed rem sizes (the comfortable top of each former clamp). v2 measures & splits,
   so fixed-size text that doesn't fit simply flows to another page — readability is
   never traded for page height. Default engine keeps the cqh clamps. */
.page-viridians-proof-ledger.sdx-engine-v2 {
  /* Book-proportioned type scale. The earlier 1.06rem body read oversized/"Grade 1"
     against the tall page and left pages sparse; this denser scale is more book-like
     and fits more lines per page. (Theme value — tune here.) */
  --sdx-book-size-running-head: 0.76rem;
  --sdx-book-size-label: 0.82rem;
  --sdx-book-size-subhead: 1.05rem;
  --sdx-book-size-body: 1rem;            /* prose: a bit larger than the 0.92 that read too small */
  --sdx-book-size-spread-title: 1.28rem;
}

/* The step/fact TABLE text stays smaller than prose (it may shrink to fit rows).
   Prose (lede, paragraphs, foundation copy) uses the larger --sdx-book-size-body
   above; the table overrides to a smaller fixed size here. */
.sdx-engine-v2 .vtr-proof-step-text,
.sdx-engine-v2 .vtr-proof-fact dd {
  font-size: 0.9rem;
}

/* Unified header bar across ALL proof-ledger page types (proof page, evidence-
   ledger spread, foundation spread): same height AND same style, so headers line
   up and read consistently across a spread. Replaces the three divergent header
   treatments (proof/foundation 0.55rem pad + book-stage-rule border vs ledger
   0.35rem pad + 0.55rem text + lighter border + 2-col grid). */
.sdx-engine-v2 .vtr-proof-header,
.sdx-engine-v2 .vtr-ledger-kicker,
.sdx-engine-v2 .vtr-foundation-header {
  min-height: 2.3rem;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin: 0;
  padding: 0 0 0.6rem;
  border-bottom: 1px solid var(--book-stage-rule);
  background: none;
}
.sdx-engine-v2 .vtr-proof-eyebrow,
.sdx-engine-v2 .vtr-proof-running-head,
.sdx-engine-v2 .vtr-ledger-kicker .vtr-ledger-eyebrow,
.sdx-engine-v2 .vtr-ledger-kicker .vtr-ledger-running-head,
.sdx-engine-v2 .vtr-foundation-eyebrow {
  margin: 0;
  font-size: 0.82rem;
  letter-spacing: var(--sdx-book-track-label);
  line-height: var(--sdx-book-leading-tight);
  text-transform: uppercase;
  white-space: nowrap;
}

/* Top bar: a single, consistent label (the proof module renders one label now).
   No two-column experiment. */

/* Typography: kill orphan last-line words. Short rows use `balance` (evens the
   lines, same line count → stable height); longer copy uses `pretty`. */
.sdx-engine-v2 .vtr-proof-step-text,
.sdx-engine-v2 .vtr-proof-title,
.sdx-engine-v2 .vtr-proof-fact dd {
  text-wrap: balance;
}
.sdx-engine-v2 .vtr-proof-lede,
.sdx-engine-v2 .vtr-ledger-body,
.sdx-engine-v2 .vtr-proof-copy p {
  text-wrap: pretty;
}

/* ── Step / fact rows: width-intrinsic responsive layout (per the authoring
   standard, the BLOCK owns its layout; the author only supplies {label,text}).
   WIDE: number | label | text columns (the base rule). NARROW (phone column):
   collapse to number+label on one line, full-width text beneath — so a long
   unbreakable label can never squeeze the text column to a sliver or overflow.
   This is a viewport rule, so it applies identically in the measurement probe and
   the live render (measure == render). Replaces the min-content patch. */
@media (max-width: 48rem) {
  .sdx-engine-v2 .vtr-proof-steps li {
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-areas: "num label" "text text";
    column-gap: 0.55rem;
    row-gap: 0.25rem;
    align-items: baseline;
  }
  .sdx-engine-v2 .vtr-proof-steps li::before { grid-area: num; }
  .sdx-engine-v2 .vtr-proof-step-label { grid-area: label; align-self: baseline; }
  .sdx-engine-v2 .vtr-proof-step-text { grid-area: text; }

  .sdx-engine-v2 .vtr-proof-fact {
    grid-template-columns: minmax(0, 1fr);
    row-gap: 0.2rem;
  }
}

/* WIDE: keep the label column, but size it to the LABEL's own width (max-content)
   so a long label like "REVIEWABILITY" fits its column and never overruns into the
   text column; the text column (1fr, min 0) takes the remainder and wraps. Replaces
   the fixed 31% cap that caused the overrun. */
@media (min-width: 48.01rem) {
  /* FIXED, consistent columns on every row AND every page: a tight number column
     (fits "05"), one shared label-column width (fits the longest single-word label
     like REVIEWABILITY on one line; longer multi-word labels wrap within it), and
     the text column takes ALL the remaining width. No per-page/per-row resizing,
     minimal gaps. Fixed rem values → identical in the measure probe and render. */
  .sdx-engine-v2 .vtr-proof-steps li {
    grid-template-columns: 1.6rem 8.5rem minmax(0, 1fr);
    column-gap: 0.6rem;
  }
  .sdx-engine-v2 .vtr-proof-fact {
    grid-template-columns: 8.5rem minmax(0, 1fr);
    column-gap: 0.6rem;
  }
}

/* Header alignment across a spread: a proof page starts its header at the proof
   page top-padding (--sdx-book-page-padding-y), but the foundation text page used
   a much larger top padding, so a proof page facing a foundation page showed two
   header bars at different heights. Give the foundation text page the same header
   top-offset so the bars line up. */
.sdx-engine-v2 .vtr-foundation-page--text {
  padding-top: var(--sdx-book-page-padding-y);
}
