/* ============================================================
   VentureBuilder learning report (hidden preview)
   Builds on site.css: same fonts (Josefin Sans / Nunito Sans),
   off-white ground, amber + teal accents, 20px site frame.
   ============================================================ */

.lr {
  --ink: #393838;
  --head: #0d0c0c;
  --muted: #6f6b66;
  --rule: #e7e3da;
  --amber: #f5bd24;
  --amber-ink: #8a6200;      /* amber that passes contrast on off-white */
  --teal: #318493;
  --teal-ink: #24636e;
  --card: #ffffff;
  --hdrh: 147px;             /* real site-header height (set by report.js); the header scrolls away on this page */
  --bar: 46px;               /* report bar height, the only sticky chrome */
  --gutter: 40px;
  --measure: 640px;
  color: var(--ink);
}

@media (max-width: 640px) {
  .lr { --gutter: 20px; --bar: 44px; }
}

.lr main a:not(.lr-card):not(.lr-cue):not(.lr-more__card):not(.lr-hero__pdf):not(.lr-about__pdf) { color: var(--teal-ink); text-decoration: underline; text-underline-offset: 2px; }

.lr-skip {
  position: absolute; left: -9999px; top: 0; z-index: 200;
  background: var(--head); color: #fff; padding: 10px 16px;
}
.lr-skip:focus { left: 16px; top: 16px; }

.lr :focus-visible { outline: 3px solid var(--teal); outline-offset: 3px; }

.lr section[id], .lr [data-nav] { scroll-margin-top: var(--bar); }

/* On the report the site header scrolls away; only the slim report bar stays pinned. */
.lr .site-header { position: relative; }

/* ---------- Eyebrows & shared type ---------- */
.lr-eyebrow,
.lr-kicker {
  font-family: var(--font-heading);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  line-height: 1.4;
  color: var(--teal-ink);
  margin-bottom: 0.9rem;
}
.lr-eyebrow--light, .lr-kicker { color: var(--amber); }

.lr h2 {
  font-family: var(--font-heading);
  color: var(--head);
  font-weight: 700;
  font-size: clamp(1.9rem, 3.4vw, 2.75rem);
  line-height: 1.1;
  letter-spacing: -0.01em;
}

/* ---------- Sticky report bar ---------- */
.lr-bar {
  position: sticky;
  top: 0;
  z-index: 110;
  background: rgba(250, 250, 250, 0.95);
  -webkit-backdrop-filter: saturate(1.2) blur(8px);
  backdrop-filter: saturate(1.2) blur(8px);
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
}
.lr-bar__inner {
  display: flex; align-items: center; gap: 20px;
  height: var(--bar);
  max-width: 1400px; margin: 0 auto; padding: 0 var(--gutter);
}
.lr-bar__logo { display: flex; align-items: center; flex: 0 0 auto; }
.lr-bar__logo img { height: 28px; width: auto; }
.js .lr-bar__logo { opacity: 0; visibility: hidden; transition: opacity 0.3s ease, visibility 0s linear 0.3s; }
.js .lr-bar.is-stuck .lr-bar__logo { opacity: 1; visibility: visible; transition: opacity 0.3s ease, visibility 0s; }
.lr-bar__title {
  font-family: var(--font-heading); font-weight: 700; font-size: 0.78rem;
  letter-spacing: 0.16em; text-transform: uppercase; color: var(--head); text-decoration: none; white-space: nowrap;
}
.lr-bar__current {
  flex: 1; min-width: 0;
  font-size: 0.9rem; color: var(--muted); line-height: 1.3;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.lr-bar__toggle {
  font-family: var(--font-heading); font-weight: 700; font-size: 0.72rem; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--ink); background: transparent; border: 1.5px solid #707070; border-radius: 3px;
  padding: 0 14px; min-height: 34px; cursor: pointer;
}
.lr-bar__toggle:hover, .lr-bar__toggle[aria-expanded="true"] { background: #707070; color: #fff; }
.lr-bar__pdf {
  font-family: var(--font-heading); font-weight: 700; font-size: 0.72rem; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--teal-ink); background: transparent; border: 0; padding: 0 6px; min-height: 34px; cursor: pointer;
  text-decoration: underline; text-underline-offset: 3px;
}
.lr-bar__pdf:hover { color: var(--head); }
[data-lr-pdf][aria-busy="true"] { cursor: progress; opacity: 0.75; }
.lr-hero__pdf {
  font-family: var(--font-heading); font-weight: 700; font-size: 0.7rem; letter-spacing: 0.16em; text-transform: uppercase;
  color: #fff; background: transparent; border: 1.5px solid rgba(255, 255, 255, 0.85); border-radius: 999px;
  padding: 6px 14px 4px; cursor: pointer;
}
.lr-hero__pdf:hover { background: #fff; color: var(--head); }
.lr-about__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 24px; margin-top: 1.4em; }
.lr-bar__progress { position: absolute; left: 0; right: 0; bottom: -1px; height: 3px; }
.lr-bar__progress span {
  display: block; height: 100%; background: var(--amber);
  transform-origin: 0 50%; transform: scaleX(var(--p, 0));
}
.lr-toc {
  position: absolute; right: var(--gutter); top: calc(100% + 8px);
  width: min(460px, calc(100vw - 2 * var(--gutter)));
  max-height: calc(100svh - var(--bar) - 24px); overflow: auto;
  background: var(--card); border: 1px solid var(--rule); border-radius: 6px;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.14); padding: 10px 0;
}
.lr-toc ol { list-style: none; }
.lr-toc a {
  display: flex; gap: 14px; padding: 9px 20px; line-height: 1.35; font-size: 0.95rem;
  color: var(--ink) !important; text-decoration: none !important;
}
.lr-toc a:hover, .lr-toc a[aria-current="true"] { background: #f6f3ec; }
.lr-toc a[aria-current="true"] { font-weight: 700; }
.lr-toc__num { flex: 0 0 22px; font-family: var(--font-heading); font-weight: 700; color: var(--amber-ink); }
.lr-toc__glance a { font-family: var(--font-heading); font-size: 0.75rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted) !important; padding-top: 14px; }

@media (max-width: 640px) {
  .lr-bar__title { display: none; }
  .lr-bar__pdf { display: none; }  /* hero and end-of-report buttons cover phones */
  .lr-bar__inner { gap: 12px; }
  .lr-bar__toggle { min-height: 36px; }
}

/* ---------- Hero ---------- */
.lr-hero {
  position: relative;
  min-height: calc(100svh - var(--hdrh) - var(--bar) - 20px);
  min-height: max(540px, calc(100svh - var(--hdrh) - var(--bar) - 20px));
  display: flex; align-items: flex-end;
  overflow: hidden; color: #fff;
}
.lr-hero__img, .lr-opener__img {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
}
.lr-hero__shade {
  position: absolute; inset: 0;
  background:
    /* lighter than before: the graded photo's darker greens carry the white title (Henry, Oct 2026) */
    linear-gradient(to top, rgba(8, 8, 8, 0.58) 0%, rgba(8, 8, 8, 0.24) 40%, rgba(8, 8, 8, 0) 70%),
    linear-gradient(to right, rgba(8, 8, 8, 0.22), transparent 55%);
}
@media (max-width: 640px) {
  /* on phones the title sits over the bright road, not the dark greens: keep a stronger bottom shade */
  .lr-hero__shade { background: linear-gradient(to top, rgba(8, 8, 8, 0.74) 0%, rgba(8, 8, 8, 0.42) 48%, rgba(8, 8, 8, 0) 78%); }
}
.lr-hero__content {
  position: relative; z-index: 1; width: 100%;
  max-width: 1400px; margin: 0 auto; padding: 0 var(--gutter) clamp(72px, 11vh, 120px);
}
.lr-hero h1 {
  color: #fff;
  font-size: clamp(2.3rem, 5.2vw, 4.4rem);
  line-height: 1.04; letter-spacing: -0.015em;
  max-width: 17ch; margin: 0 0 1.4rem;
  text-wrap: balance;
}
.lr-hero__pre {
  display: block; font-size: 0.42em; letter-spacing: 0.02em; font-weight: 600;
  color: rgba(255, 255, 255, 0.86); margin-bottom: 0.5em;
}
.lr-hero h1.lr-hero__title--lead { max-width: 14ch; font-size: clamp(2.6rem, 6.4vw, 5.4rem); line-height: 1; }
.lr-hero__sub {
  display: block; margin-top: 0.45em; max-width: 26ch;
  font-size: 0.4em; line-height: 1.25; font-weight: 600; letter-spacing: 0;
  color: rgba(255, 255, 255, 0.9);
}
.lr-hero__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; font-size: 0.95rem; color: rgba(255, 255, 255, 0.86); }
.lr-pill {
  font-family: var(--font-heading); font-weight: 700; font-size: 0.7rem; letter-spacing: 0.16em; text-transform: uppercase;
  background: var(--amber); color: #1d1600; border-radius: 999px; padding: 6px 12px 4px;
}
.lr-credit {
  position: absolute; z-index: 1; right: 14px; bottom: 10px;
  font-size: 0.72rem; line-height: 1.3; color: rgba(255, 255, 255, 0.78);
  max-width: 60%; text-align: right;
}
.lr main a.lr-cue, .lr-cue {
  position: absolute; z-index: 1; left: 50%; bottom: 22px; transform: translateX(-50%);
  display: flex; flex-direction: column; align-items: center; gap: 6px;
  color: #fff; text-decoration: none; font-family: var(--font-heading); font-size: 0.72rem;
  letter-spacing: 0.2em; text-transform: uppercase;
}
.lr-cue::after {
  content: ""; width: 12px; height: 12px; border-right: 2px solid var(--amber); border-bottom: 2px solid var(--amber);
  transform: rotate(45deg);
  animation: lr-bob 2.2s ease-in-out infinite;
}
@keyframes lr-bob { 0%, 100% { translate: 0 0; } 50% { translate: 0 5px; } }

@media (max-width: 640px) {
  .lr main a.lr-cue, .lr-cue { display: none; }
  .lr-credit { right: 10px; bottom: 8px; max-width: 70%; }
}

/* ---------- Stats strip ---------- */
.lr-stats { background: var(--bg, #fafafa); border-bottom: 1px solid var(--rule); }
.lr-stats__list {
  max-width: 1400px; margin: 0 auto; padding: 36px var(--gutter);
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px;
}
.lr-stats__list li { display: flex; flex-direction: column; gap: 6px; padding-top: 14px; border-top: 3px solid var(--amber); }
.lr-stats__value { font-family: var(--font-heading); font-weight: 700; font-size: clamp(1.6rem, 2.6vw, 2.25rem); line-height: 1.05; color: var(--head); }
.lr-stats__label { font-size: 0.92rem; line-height: 1.4; color: var(--muted); }
@media (max-width: 900px) { .lr-stats__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* Three stats sit under the portfolio row: one column each, stacked on phones */
.lr-stats__list--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 900px) { .lr-stats__list--3 { grid-template-columns: 1fr; gap: 22px; } }

/* Portfolio logos above the stats */
.lr-portfolio { max-width: 1400px; margin: 0 auto; padding: 34px var(--gutter) 0; }
.lr-portfolio__eyebrow { font-family: var(--font-heading); font-size: 0.78rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--amber-ink); margin: 0 0 18px; }
.lr-portfolio__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.lr-portfolio__co { display: flex; align-items: center; gap: 18px; background: #fff; border: 1px solid var(--rule); border-radius: 12px; padding: 16px 20px; min-height: 104px; }
.lr-portfolio__logo { width: 132px; height: auto; flex: none; }
.lr-portfolio__logo--square { width: 72px; border-radius: 10px; }
.lr-portfolio__name { display: block; font-family: var(--font-heading); font-weight: 700; color: var(--head); font-size: 1.02rem; line-height: 1.2; }
.lr-portfolio__where { display: block; color: var(--muted); font-size: 0.9rem; }
@media (max-width: 900px) {
  .lr-portfolio__list { grid-template-columns: 1fr; gap: 12px; }
  .lr-portfolio__co { min-height: 84px; padding: 12px 16px; }
}

/* ---------- Sections ---------- */
.lr-sec { position: relative; }
.lr-sec + .lr-sec:not(.has-opener) .lr-body { border-top: 1px solid var(--rule); }

.lr-body {
  max-width: 1400px; margin: 0 auto;
  padding: clamp(56px, 9vh, 104px) var(--gutter);
}
.lr-text { max-width: var(--measure); margin: 0 auto; }
.lr-text p, .lr-list li { font-size: 1.1rem; line-height: 1.75; color: var(--ink); }
.lr-text > .lr-step > p, .lr-text .lr-list { margin-bottom: 1.15em; }
.lr-text strong { color: var(--head); }
.lr-list { list-style: disc; padding-left: 1.2em; }

.lr-head { margin-bottom: 2.2rem; }
.lr-head h2::after {
  content: ""; display: block; width: 64px; height: 4px; background: var(--amber); margin-top: 1.1rem;
}

/* Two-column scrollytelling: text scrolls, media column sticks. */
@media (min-width: 960px) {
  .lr-sec--scrolly .lr-body {
    display: grid;
    grid-template-columns: minmax(0, var(--measure)) minmax(0, 1fr);
    gap: clamp(40px, 5vw, 88px);
    align-items: start;
  }
  .lr-sec--scrolly .lr-text { margin: 0; }
  .lr-inline { display: none; }
}
.lr-media { display: none; }
@media (min-width: 960px) {
  .lr-media { display: block; position: relative; height: 100%; }
  .lr-media__frame {
    position: sticky;
    top: calc(var(--bar) + 28px);
    height: calc(100svh - var(--bar) - 56px);
    min-height: 420px; max-height: 860px;
  }
  .lr-fig {
    position: absolute; inset: 0;
    opacity: 0; visibility: hidden;
    transition: opacity 0.9s ease, visibility 0s linear 0.9s;
  }
  .lr-fig.is-active { opacity: 1; visibility: visible; transition: opacity 0.9s ease, visibility 0s; }
  .lr-fig .lr-photo { height: 100%; position: relative; border-radius: 4px; overflow: hidden; background: #e9e6df; }
  .lr-fig .lr-photo img { width: 100%; height: 100%; object-fit: cover; }
  .lr-fig .lr-photo figcaption {
    position: absolute; left: 0; right: 0; bottom: 0;
    padding: 28px 12px 8px; text-align: right; opacity: 1;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.38), transparent);
    color: rgba(255, 255, 255, 0.72);
  }
  .lr-fig--chart { display: flex; align-items: center; }
  /* Landscape photos keep their own shape (no heavy crop), centred in the column;
     portrait photos fill the full height. */
  .lr-fig--photo:not(.is-portrait) { display: flex; align-items: center; }
  .lr-fig--photo:not(.is-portrait) .lr-photo { height: auto; width: 100%; aspect-ratio: var(--ar, 4 / 3); }
  .lr-fig--chart .lr-chart { width: 100%; }

  /* Compact: short section with one picture. No sticky frame; the photo sits beside the text. */
  .lr-sec--compact .lr-body { align-items: center; padding-top: clamp(40px, 6vh, 72px); padding-bottom: clamp(40px, 6vh, 72px); }
  .lr-sec--compact .lr-media { height: auto; }
  .lr-sec--compact .lr-media__frame { position: static; height: auto; min-height: 0; max-height: none; }
  .lr-sec--compact .lr-fig { position: relative; inset: auto; opacity: 1; visibility: visible; }
  .lr-sec--compact .lr-fig .lr-photo { height: auto; aspect-ratio: var(--ar, 4 / 3); max-height: 560px; }
}

/* Inline media (phones and small tablets) */
.lr-inline { margin: 2em calc(-1 * var(--gutter)) 2em; }
.lr-inline .lr-photo img { width: 100%; max-height: 78svh; object-fit: cover; }
.lr-inline .lr-chart { margin: 0 var(--gutter); }

.lr-photo figcaption {
  font-size: 0.72rem; line-height: 1.35; color: var(--muted); opacity: 0.8; padding: 6px var(--gutter) 0;
}

/* ---------- Static photo strip at the end of a section ---------- */
.lr-gallery {
  max-width: 1400px; margin: 0 auto; padding: 0 var(--gutter) clamp(56px, 9vh, 104px);
  display: grid; gap: 14px; grid-template-columns: repeat(var(--cols, 4), minmax(0, 1fr));
}
.lr-gallery--3 { --cols: 3; }
.lr-gallery--2 { --cols: 2; }
.lr-gallery .lr-photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 4px; background: #e9e6df; }
.lr-gallery .lr-photo figcaption { padding: 6px 0 0; }
@media (max-width: 760px) {
  .lr-gallery, .lr-gallery--3 { --cols: 2; gap: 10px; }
  .lr-gallery--3 > :last-child { grid-column: 1 / -1; }
  .lr-gallery--3 > :last-child img { aspect-ratio: 16 / 10; }
}

/* ---------- Openers (full-bleed chapter photos) ---------- */
.lr-opener {
  position: relative; overflow: hidden; color: #fff;
  min-height: max(520px, calc(88svh - var(--bar)));
  display: flex; align-items: flex-end;
}
.lr-opener__shade {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(8, 8, 8, 0.8) 0%, rgba(8, 8, 8, 0.38) 45%, rgba(8, 8, 8, 0) 78%);
}
.lr-opener__text {
  position: relative; z-index: 1; width: 100%;
  max-width: 1400px; margin: 0 auto; padding: 0 var(--gutter) clamp(52px, 9vh, 96px);
}
.lr-opener__num {
  display: block;
  font-family: var(--font-heading); font-weight: 700;
  font-size: clamp(4.5rem, 11vw, 9rem); line-height: 0.8;
  color: var(--amber); margin-bottom: 0.25em;
}
.lr-opener h2 {
  color: #fff;
  font-size: clamp(2rem, 4.2vw, 3.5rem); line-height: 1.08;
  max-width: 22ch; text-wrap: balance;
}

@media (prefers-reduced-motion: no-preference) {
  @supports (animation-timeline: view()) {
    .lr-opener__img, .lr-hero__img {
      animation: lr-settle linear both;
      animation-timeline: view();
      animation-range: entry 0% exit 60%;
    }
    @keyframes lr-settle { from { transform: scale(1.1); } to { transform: scale(1); } }
  }
}

/* ---------- Quotes, pull-outs, takeaways ---------- */
.lr-quote { margin: 2.4em 0 2.6em; position: relative; padding-left: 1.4em; border-left: 4px solid var(--amber); }
.lr-quote blockquote p {
  font-family: var(--font-heading); font-weight: 600;
  font-size: clamp(1.35rem, 2.1vw, 1.65rem); line-height: 1.38; color: var(--head);
  letter-spacing: -0.005em;
}
.lr-quote blockquote p::before { content: "“"; color: var(--amber-ink); margin-left: -0.42em; }
.lr-quote blockquote p::after { content: "”"; color: var(--amber-ink); }
.lr-quote figcaption {
  margin-top: 0.9em;
  font-family: var(--font-heading); font-weight: 700; font-size: 0.78rem; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--teal-ink);
}
.lr-quote figcaption::before { content: "— "; }

.lr-quote--pull { border-left: 0; padding-left: 0; margin: 2.2em 0 2.4em; }
.lr-quote--pull blockquote p { font-size: clamp(1.6rem, 2.6vw, 2.1rem); line-height: 1.25; position: relative; }
/* Big matching marks (Ian, 29 Oct 2026): the opening mark hangs in the margin beside the first line,
   or sits above the quote where the margin is too narrow. */
.lr-quote--pull blockquote p::before,
.lr-quote--pull blockquote p::after { color: var(--amber); font-size: 2.4em; line-height: 0; }
.lr-quote--pull blockquote p::before { display: block; line-height: 1; margin: 0 0 -0.35em; }
.lr-quote--pull blockquote p::after { vertical-align: -0.4em; margin-left: 0.03em; }
@media (min-width: 700px) {
  .lr-quote--pull blockquote p::before { position: absolute; left: -0.5em; top: 0.06em; margin: 0; }
}

.lr-callout {
  margin: 2.2em 0 2.4em; padding: 1.4em 1.6em 1.3em;
  background: var(--card); border: 1px solid var(--rule); border-top: 4px solid var(--amber); border-radius: 0 0 6px 6px;
}
.lr-text .lr-callout__title { font-family: var(--font-heading); font-weight: 700; font-size: 0.8rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--teal-ink); margin-bottom: 0.8em; }
.lr-callout__row { display: flex; align-items: center; gap: 18px 24px; flex-wrap: wrap; }
.lr-callout__item { display: flex; flex-direction: column; gap: 4px; flex: 1 1 140px; }
.lr-callout__value { font-family: var(--font-heading); font-weight: 700; font-size: clamp(2.4rem, 4.6vw, 3.4rem); line-height: 1; color: var(--head); }
.lr-callout__item:last-child .lr-callout__value { color: var(--teal-ink); }
.lr-callout__label { font-size: 0.9rem; line-height: 1.4; color: var(--muted); }
.lr-callout__arrow { font-size: 2rem; color: var(--amber-ink); flex: 0 0 auto; }
@media (max-width: 520px) {
  .lr-callout__row { flex-direction: column; align-items: flex-start; gap: 6px; }
  .lr-callout__item { flex: none; }
  .lr-callout__arrow { transform: rotate(90deg); font-size: 1.6rem; margin-left: 0.4em; }
}
.lr-callout figcaption { margin-top: 0.9em; font-size: 0.82rem; color: var(--muted); }

.lr-about__acks { display: grid; grid-template-columns: max-content 1fr; gap: 4px 16px; font-size: 0.95rem; line-height: 1.5; margin-bottom: 1.2em; }
.lr-about__acks dt { font-weight: 700; color: var(--head); }
.lr-about__acks dd { color: var(--ink); }

.lr-text .lr-pullout {
  font-family: var(--font-heading); font-weight: 700;
  font-size: clamp(1.55rem, 2.6vw, 2.1rem); line-height: 1.22; color: var(--teal-ink);
  margin: 1.6em 0 1.7em; padding: 0.7em 0 0.55em;
  border-top: 3px solid var(--amber); border-bottom: 1px solid var(--rule);
  text-wrap: balance;
}
@media (min-width: 1200px) {
  .lr-sec:not(.lr-sec--scrolly) .lr-pullout { margin-left: -80px; margin-right: -80px; }
}

.lr-takeaway {
  margin: 2.8em 0 0.5em; padding: 1.6em 1.8em 1.5em;
  background: var(--card); border-left: 6px solid var(--amber); border-radius: 0 6px 6px 0;
  box-shadow: 0 10px 30px rgba(20, 20, 20, 0.07);
}
.lr-text .lr-takeaway__label {
  font-family: var(--font-heading); font-weight: 700; font-size: 0.78rem; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--amber-ink); margin-bottom: 0.6em;
}
.lr-text .lr-takeaway p:last-child { font-size: 1.12rem; line-height: 1.6; color: var(--head); font-weight: 600; }

/* ---------- Lessons at a glance ---------- */
.lr-glance { background: #f3f0e9; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.lr-glance__inner { max-width: 1400px; margin: 0 auto; padding: clamp(56px, 9vh, 104px) var(--gutter); }
.lr-glance h2 { margin-bottom: 2rem; }
.lr-cards {
  list-style: none;
  display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 22px;
}
.lr main a.lr-card, .lr-card {
  display: flex; flex-direction: column; height: 100%;
  background: var(--card); border-radius: 6px; overflow: hidden; text-decoration: none; color: var(--ink);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.lr-card:hover { transform: translateY(-3px); box-shadow: 0 14px 34px rgba(0, 0, 0, 0.12); text-decoration: none; }
.lr-card img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.lr-card__body { display: flex; flex-direction: column; gap: 8px; padding: 18px 20px 22px; }
.lr-card__num { font-family: var(--font-heading); font-weight: 700; font-size: 1.9rem; line-height: 1; color: var(--amber-ink); }
.lr-card__title { font-family: var(--font-heading); font-weight: 700; font-size: 1.18rem; line-height: 1.25; color: var(--head); }
.lr-card__text { font-size: 0.92rem; line-height: 1.5; color: var(--muted); }

/* ---------- Charts ---------- */
.lr-chart {
  background: var(--card); border: 1px solid var(--rule); border-radius: 6px;
  padding: clamp(18px, 2.4vw, 32px);
}
.lr-chart__title {
  font-family: var(--font-heading); font-weight: 700; font-size: 1.05rem; line-height: 1.3; color: var(--head);
  margin-bottom: 1rem;
}
.lr-text .lr-chart__title { font-size: 1.05rem; line-height: 1.3; }
.lr-chart > figcaption { margin-top: 1rem; font-size: 0.82rem; line-height: 1.45; color: var(--muted); }

.lr-trend { width: 100%; height: auto; display: block; overflow: visible; }
.lr-trend .grid { stroke: #ebe7de; stroke-width: 1; }
.lr-trend .ylab, .lr-trend .xlab { font-family: var(--font-body); font-size: 15px; fill: #7a7671; }
.lr-trend .band { fill: rgba(245, 189, 36, 0.32); transition: opacity 0.8s ease 1.4s; }
.lr-trend .bandlab { font-family: var(--font-heading); font-weight: 700; font-size: 16px; fill: var(--amber-ink); transition: opacity 0.8s ease 1.6s; }
.lr-trend .line {
  fill: none; stroke: var(--teal); stroke-width: 4; stroke-linecap: round;
  stroke-dasharray: var(--len); stroke-dashoffset: 0;
  transition: stroke-dashoffset 1.3s cubic-bezier(.45, 0, .2, 1) 0.3s;
}
.lr-trend .pt { fill: var(--teal); stroke: #fff; stroke-width: 3; transition: opacity 0.4s ease calc(var(--i) * 1.3s + 0.2s); }
.lr-trend .ptlab { font-family: var(--font-heading); font-weight: 700; font-size: 26px; fill: var(--head); transition: opacity 0.4s ease calc(var(--i) * 1.3s + 0.3s); }
.lr-trend .ptsub { font-family: var(--font-body); font-weight: 400; font-size: 14px; fill: #7a7671; }
.js .lr-chart:not(.is-drawn) .line { stroke-dashoffset: var(--len); }
.js .lr-chart:not(.is-drawn) :is(.pt, .ptlab, .band, .bandlab) { opacity: 0; }

.lr-shrink {
  --dmax: clamp(130px, 15vw, 210px);
  list-style: none;
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px;
  align-items: start;
}
.lr-shrink li { text-align: center; }
.lr-shrink__stage { height: var(--dmax); display: flex; align-items: flex-end; justify-content: center; margin-bottom: 12px; }
.lr-shrink__dot {
  position: relative; display: block;
  width: calc(var(--s) * var(--dmax)); height: calc(var(--s) * var(--dmax));
  border-radius: 50%; background: var(--teal);
  transform-origin: 50% 100%;
  transition: transform 0.7s cubic-bezier(.3, 1.4, .5, 1) calc(var(--i) * 0.45s);
}
.lr-shrink__dot.is-unknown { background: transparent; border: 2px dashed var(--teal); }
.lr-shrink__low {
  position: absolute; left: 50%; bottom: 0;
  width: calc(var(--r) * 100%); height: calc(var(--r) * 100%);
  transform: translateX(-50%); border-radius: 50%; border: 2px dashed rgba(255, 255, 255, 0.85);
}
.lr-text .lr-shrink p, .lr-shrink p { font-size: inherit; line-height: 1.3; margin: 0; }
.lr-shrink__amt { font-family: var(--font-heading); font-weight: 700; font-size: 1.15rem !important; color: var(--head) !important; }
.lr-shrink__lab { font-family: var(--font-heading); font-weight: 700; font-size: 0.7rem !important; letter-spacing: 0.12em; text-transform: uppercase; color: var(--teal-ink) !important; margin-top: 4px !important; }
.lr-shrink__sub { font-size: 0.8rem !important; color: var(--muted) !important; margin-top: 4px !important; }
.lr-shrink__end {
  margin-top: 1.2rem !important; padding: 10px 14px; border-left: 4px solid var(--amber); background: #faf6ea;
  font-family: var(--font-heading); font-weight: 700; font-size: 0.98rem !important; line-height: 1.35 !important; color: var(--head) !important;
  transition: opacity 0.6s ease 1.9s;
}
.js .lr-chart:not(.is-drawn) .lr-shrink__dot { transform: scale(0); }
.js .lr-chart:not(.is-drawn) .lr-shrink__end { opacity: 0; }
@media (max-width: 560px) {
  .lr-shrink { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 22px; --dmax: 140px; }
}

/* ---------- About ---------- */
.lr-about { border-top: 1px solid var(--rule); background: #f3f0e9; }
.lr-about__inner { max-width: var(--measure); margin: 0 auto; padding: clamp(56px, 9vh, 96px) var(--gutter); }
.lr-about h2 { margin-bottom: 1.4rem; }
.lr-about p { font-size: 1rem; line-height: 1.7; color: var(--ink); margin-bottom: 1em; }
.lr-about h3 { color: var(--amber-ink); font-size: 0.8rem; margin: 1.6em 0 0.4em; }
.lr-about__credits { font-size: 0.92rem; line-height: 1.6; color: var(--muted); margin-bottom: 1.4em; }
.lr-about__build { font-size: 0.85rem !important; color: var(--muted) !important; }

/* ---------- Reveal on scroll ---------- */
@media (prefers-reduced-motion: no-preference) {
  .js .lr-reveal { opacity: 0; transform: translateY(18px); transition: opacity 0.7s ease, transform 0.7s ease; transition-delay: calc(var(--i, 0) * 70ms); }
  .js .lr-reveal.is-in { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .lr *, .lr *::before, .lr *::after { animation: none !important; transition: none !important; }
}

/* ---------- Mobile type ---------- */
@media (max-width: 640px) {
  .lr-text p, .lr-list li { font-size: 1.05rem; line-height: 1.7; }
  .lr-quote { padding-left: 1em; }
  .lr-takeaway { padding: 1.3em 1.2em; }
}

@media print {
  .lr-bar, .lr-cue, .lr-media, .site-header, .site-footer { display: none !important; }
  .lr-inline { display: block !important; }
  .js .lr-reveal { opacity: 1 !important; transform: none !important; }
}

/* ---------- Thank you (replaces "About this draft", Oct 2026) ---------- */
.lr-thanks__inner { max-width: 1080px; margin: 0 auto; padding: clamp(64px, 10vh, 112px) var(--gutter); }
.lr-thanks__intro { max-width: var(--measure); }
.lr-thanks h2 { margin-bottom: 1.2rem; }
.lr-thanks__intro p:not(.lr-eyebrow) { font-size: 1.05rem; line-height: 1.7; color: var(--ink); margin-bottom: 1em; }
.lr-thanks__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 36px 40px; margin: 48px 0 40px; padding-top: 36px; border-top: 2px solid var(--amber); }
.lr-thanks h3 { font-size: 0.74rem; letter-spacing: 0.16em; color: var(--amber-ink); margin: 0 0 16px; }
.lr-thanks__group ul { list-style: none; margin: 0; padding: 0; }
.lr-thanks__group li { margin: 0 0 12px; line-height: 1.3; }
.lr-thanks__group--orgs li { margin-bottom: 8px; }
/* Logos and board photos (Dan, via Ian, 30 Oct 2026); layout B: board left, logos right */
.lr-thanks .lr-thanks__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 40px 56px; }
.lr-thanks__col--logos .lr-thanks__group + .lr-thanks__group { margin-top: 30px; }
.lr-thanks__group--logos ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.lr-thanks__group--logos li { margin: 0; background: #fff; border: 1px solid var(--rule); border-radius: 6px; height: 70px; display: flex; align-items: center; justify-content: center; padding: 0 12px; }
/* each logo has the same visual area (size set per logo in editorial.json), capped by its tile */
.lr-thanks__group--logos img { max-width: 80%; max-height: 74%; object-fit: contain; }
.lr-thanks__group--people li { display: flex; align-items: center; gap: 16px; margin-bottom: 18px; }
.lr-thanks__group--people img { width: 50px; height: 50px; border-radius: 50%; object-fit: cover; flex: none; box-shadow: 0 0 0 1px #d9d4c8; }
.lr-thanks__group--people .lr-thanks__name { display: inline; font-size: 1rem; }
.lr-thanks__name { display: block; font-weight: 700; color: var(--head); font-size: 0.98rem; }
.lr-thanks__note { display: block; color: var(--muted); font-size: 0.86rem; margin-top: 2px; }
.lr-thanks__voices { background: #fff; border-left: 4px solid var(--amber); padding: 24px 28px; margin: 0 0 36px; max-width: 760px; }
.lr-thanks__voices h3 { margin-bottom: 10px; }
.lr-thanks .lr-thanks__voices p { font-size: 1rem; line-height: 1.7; color: var(--ink); margin: 0; }
.lr-thanks .lr-thanks__photos { font-size: 0.86rem; color: var(--muted); border-top: 1px solid var(--rule); padding-top: 18px; }
@media (max-width: 860px) { .lr-thanks .lr-thanks__grid { grid-template-columns: 1fr; } .lr-thanks__group--people ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; } }
@media (max-width: 560px) { .lr-thanks__voices { padding: 20px; } .lr-thanks__group--logos li { height: 58px; } .lr-thanks__group--people ul { grid-template-columns: 1fr; } }

/* ---------- Launch: PDF links (fixed file) and "More from VentureBuilder" cards ---------- */
@media (min-width: 641px) { .lr a.lr-bar__pdf { display: inline-flex; align-items: center; } }
.lr a.lr-hero__pdf, .lr a.lr-about__pdf { display: inline-block; text-decoration: none; }
.lr main a.lr-hero__pdf { color: #fff !important; }  /* beats site.css "main a:not(...)" */
.lr main a.lr-hero__pdf:hover { color: var(--head) !important; }
.lr-more { border-top: 1px solid var(--rule); background: var(--bg, #fafafa); }
.lr-more__inner { max-width: 1080px; margin: 0 auto; padding: clamp(56px, 9vh, 96px) var(--gutter); }
.lr-more h2 { margin-bottom: 1.6rem; }
.lr-more__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.lr main a.lr-more__card, .lr-more__card {
  display: flex; flex-direction: column; gap: 10px; height: 100%; padding: 22px 22px 20px;
  background: #fff; border: 1px solid var(--rule); border-top: 3px solid var(--amber); border-radius: 6px;
  color: var(--ink); text-decoration: none; transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.lr-more__card:hover { transform: translateY(-3px); box-shadow: 0 14px 34px rgba(0, 0, 0, 0.1); }
.lr-more__title { font-family: var(--font-heading); font-weight: 700; font-size: 1.25rem; color: var(--head); }
.lr-more__text { font-size: 0.95rem; line-height: 1.55; color: var(--muted); flex: 1; }
.lr-more__go { font-family: var(--font-heading); font-weight: 700; font-size: 0.72rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--teal-ink); }
@media (max-width: 760px) { .lr-more__grid { grid-template-columns: 1fr; gap: 14px; } }
