/* dream.css — extensions to site.css for the dream-state mockup.
   Reuses tokens from colors_and_type.css. New patterns only. */

/* ============================================================
   ANNOUNCEMENT MARQUEE — upcoming engagements
   ============================================================ */
.marquee {
  background: var(--warm-black);
  color: var(--warm-parchment);
  border-top: 1px solid #1a1611;
  border-bottom: 1px solid #1a1611;
  overflow: hidden;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  padding: 12px 0;
}
.marquee-track {
  display: inline-flex;
  white-space: nowrap;
  animation: marqueeRoll 60s linear infinite;
  gap: var(--s-7);
}
.marquee-track > span { display: inline-flex; align-items: center; gap: var(--s-5); }
.marquee-track .pill-rose { color: var(--terra-rose); }
.marquee-track .dot { color: #4a4238; }
@keyframes marqueeRoll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* ============================================================
   HERO SUBLINE — the opening dream statement
   ============================================================ */
.hero-type__kicker {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  color: var(--slate);
  display: flex; align-items: center; gap: 14px;
  margin-bottom: var(--s-2);
}
.hero-type__kicker .num { color: var(--terra-rose); }
.hero-type__kicker .bar { width: 36px; height: 1px; background: var(--terra-rose); }

/* ============================================================
   SECTION OPENER — full-bleed photo with overlaid title
   ============================================================ */
.opener {
  position: relative;
  min-height: 64vh;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  margin-top: var(--s-9);
}
.opener .image {
  position: absolute; inset: 0;
  background-size: cover;
  background-position: center;
  filter: saturate(0.86) contrast(0.96);
}
.opener .grad {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(13,11,8,0.15) 0%, rgba(13,11,8,0.55) 60%, rgba(13,11,8,0.9) 100%);
}
.opener .body {
  position: relative; z-index: 2;
  max-width: 1240px; width: 100%;
  margin: 0 auto;
  padding: var(--s-10) var(--gutter) var(--s-7);
  color: var(--warm-parchment);
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: end;
  gap: var(--s-7);
}
.opener .eyebrow { color: var(--terra-rose); margin-bottom: var(--s-3); display: block; }
.opener h2 {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(48px, 6.4vw, 92px);
  line-height: 1.02;
  letter-spacing: -0.012em;
  margin: 0;
  text-wrap: balance;
  max-width: 16ch;
}
.opener h2 em { font-style: italic; }
.opener .deck {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 22px;
  line-height: 1.5;
  color: #d8cfb9;
  max-width: 38ch;
  margin: 0;
  text-align: right;
}

/* ============================================================
   PASSPORT — featured journey, with itinerary sidebar
   ============================================================ */
.journey {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 0;
  border-bottom: 1px solid var(--cream);
}
.journey .figure {
  aspect-ratio: 4/5;
  background-size: cover;
  background-position: center;
  filter: saturate(0.92) contrast(0.96) brightness(1.02);
}
.journey .pane {
  padding: var(--s-9) var(--s-7) var(--s-9) var(--s-9);
  border-left: 1px solid var(--cream);
  display: flex; flex-direction: column; gap: var(--s-5);
}
.journey .eyebrow { color: var(--terra-rose); }
.journey h3 {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(32px, 3.4vw, 44px);
  line-height: 1.08;
  margin: 0;
  letter-spacing: -0.005em;
  text-wrap: balance;
}
.journey h3 em { font-style: italic; }
.journey .lede {
  font-family: var(--font-display);
  font-size: 18px;
  line-height: 1.55;
  color: var(--slate);
  margin: 0;
  max-width: 44ch;
}
.journey .ledger {
  display: grid;
  grid-template-columns: 120px 1fr;
  row-gap: 14px;
  padding: var(--s-5) 0;
  border-top: 1px solid var(--cream);
  border-bottom: 1px solid var(--cream);
}
.journey .ledger dt {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  color: var(--rust);
}
.journey .ledger dd {
  font-family: var(--font-display);
  font-size: 16px;
  margin: 0;
  color: var(--warm-black);
}
.journey .impact {
  background: var(--sage-light);
  padding: var(--s-5);
  font-family: var(--font-display);
  font-size: 16px;
  line-height: 1.5;
  color: var(--warm-black);
  border-left: 2px solid var(--hermitage-sage);
}
.journey .impact .label {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  color: var(--hermitage-sage);
  display: block;
  margin-bottom: 6px;
}

/* ============================================================
   STAGES — the speaking ledger
   ============================================================ */
.stages {
  background: var(--warm-black);
  color: var(--warm-parchment);
  padding: var(--s-9) 0;
}
.stages .inner {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 var(--gutter);
}
.stages .head {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--s-7);
  align-items: end;
  padding-bottom: var(--s-7);
  border-bottom: 1px solid #1f1c17;
}
.stages .head .eyebrow { color: var(--terra-rose); }
.stages .head h2 {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(40px, 5vw, 68px);
  line-height: 1.04;
  margin: 0;
  letter-spacing: -0.012em;
  text-wrap: balance;
}
.stages .head h2 em { font-style: italic; }
.stages .head p {
  font-family: var(--font-display);
  font-size: 18px;
  color: #cfc6b5;
  margin: 0;
  max-width: 44ch;
  line-height: 1.55;
}

.ledger-row {
  display: grid;
  grid-template-columns: 110px 1.4fr 1fr 1fr 110px;
  gap: var(--s-5);
  padding: var(--s-5) 0;
  border-bottom: 1px solid #1f1c17;
  align-items: baseline;
  font-family: var(--font-display);
}
.ledger-row.upcoming { background: linear-gradient(90deg, rgba(192,139,110,0.08), transparent 40%); padding-left: var(--s-3); margin-left: calc(var(--s-3) * -1); }
.ledger-row .date {
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: var(--tracking-caps-tight);
  text-transform: uppercase;
  color: var(--terra-rose);
}
.ledger-row .title {
  font-size: 22px;
  line-height: 1.2;
  font-weight: 400;
}
.ledger-row .title em { font-style: italic; }
.ledger-row .host {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: var(--tracking-caps-tight);
  text-transform: uppercase;
  color: #cfc6b5;
}
.ledger-row .place {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: var(--tracking-caps-tight);
  text-transform: uppercase;
  color: #8a7f6d;
}
.ledger-row .status {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  text-align: right;
  color: #6a604f;
}
.ledger-row.upcoming .status { color: var(--hermitage-sage); }

.partners {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  align-items: center;
  gap: var(--s-7);
  padding: var(--s-7) 0 0;
}
.partners .lockup {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 16px;
  letter-spacing: 0.02em;
  text-align: center;
  color: #bdb3a1;
  border: 1px solid #1f1c17;
  padding: var(--s-4) var(--s-3);
  text-transform: uppercase;
}
.partners .lockup .small {
  display: block;
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: var(--tracking-caps);
  color: #6a604f;
  margin-top: 4px;
  font-weight: 400;
}

/* ============================================================
   THE COVETED BODY — protocol grid
   ============================================================ */
.protocol {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 0;
  border-top: 1px solid var(--cream);
  border-bottom: 1px solid var(--cream);
}
.protocol .lede {
  grid-column: 1 / span 5;
  padding: var(--s-8) var(--s-7) var(--s-8) 0;
  border-right: 1px solid var(--cream);
}
.protocol .lede .eyebrow { color: var(--terra-rose); margin-bottom: var(--s-3); display: block; }
.protocol .lede h3 {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(28px, 3.2vw, 40px);
  line-height: 1.1;
  margin: 0 0 var(--s-4);
  letter-spacing: -0.005em;
  text-wrap: balance;
}
.protocol .lede h3 em { font-style: italic; }
.protocol .lede p {
  font-family: var(--font-display);
  font-size: 18px;
  line-height: 1.55;
  color: var(--slate);
  margin: 0;
  max-width: 38ch;
}
.protocol .grid {
  grid-column: 6 / span 7;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}
.protocol .cell {
  padding: var(--s-6) var(--s-6);
  border-left: 1px solid var(--cream);
  border-bottom: 1px solid var(--cream);
}
.protocol .cell:nth-child(2n) { border-right: 1px solid var(--cream); }
.protocol .cell:nth-last-child(-n+2) { border-bottom: 0; }
.protocol .cell .num {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  color: var(--terra-rose);
}
.protocol .cell h4 {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 22px;
  line-height: 1.18;
  margin: 10px 0 var(--s-2);
  letter-spacing: -0.005em;
}
.protocol .cell h4 em { font-style: italic; font-weight: 400; }
.protocol .cell p {
  font-family: var(--font-display);
  font-size: 15px;
  line-height: 1.5;
  color: var(--slate);
  margin: 0;
  max-width: 30ch;
}

/* ============================================================
   STRENGTH — fitness for executives, photo + program card
   ============================================================ */
.strength {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
}
.strength .image {
  background-size: cover;
  background-position: center;
  min-height: 640px;
  filter: saturate(0.88) contrast(0.97);
}
.strength .card {
  background: var(--warm-parchment);
  padding: var(--s-9) var(--s-8);
  display: flex; flex-direction: column; gap: var(--s-5);
  border-left: 1px solid var(--cream);
}
.strength .card .eyebrow { color: var(--terra-rose); }
.strength .card h3 {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(32px, 3.6vw, 48px);
  line-height: 1.06;
  margin: 0;
  letter-spacing: -0.005em;
  text-wrap: balance;
}
.strength .card h3 em { font-style: italic; }
.strength .card p {
  font-family: var(--font-display);
  font-size: 18px;
  line-height: 1.55;
  color: var(--slate);
  margin: 0;
  max-width: 42ch;
}
.strength .card .stack { display: flex; flex-direction: column; gap: 0; border-top: 1px solid var(--cream); }
.strength .card .row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: var(--s-3);
  padding: var(--s-4) 0;
  border-bottom: 1px solid var(--cream);
  align-items: baseline;
}
.strength .card .row .name {
  font-family: var(--font-display);
  font-size: 17px;
  color: var(--warm-black);
}
.strength .card .row .name em { font-style: italic; }
.strength .card .row .meta {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  color: var(--slate);
}
.strength .card .button {
  align-self: flex-start;
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  padding: 14px 22px;
  background: var(--warm-black);
  color: var(--warm-parchment);
  margin-top: var(--s-3);
  text-decoration: none;
}

/* ============================================================
   THE LIBRARY — Harvard executive education partnership
   ============================================================ */
.library {
  background: var(--warm-parchment);
  padding: var(--s-9) 0;
  border-top: 1px solid var(--cream);
}
.library .inner {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 var(--gutter);
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: var(--s-9);
  align-items: start;
}
.library .pane .eyebrow { color: var(--terra-rose); margin-bottom: var(--s-3); display: block; }
.library .pane h2 {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(36px, 4.4vw, 56px);
  line-height: 1.06;
  margin: 0 0 var(--s-5);
  letter-spacing: -0.005em;
  text-wrap: balance;
}
.library .pane h2 em { font-style: italic; }
.library .pane p {
  font-family: var(--font-display);
  font-size: 18px;
  line-height: 1.6;
  color: var(--slate);
  margin: 0 0 var(--s-4);
  max-width: 44ch;
}
.library .pane blockquote {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 24px;
  line-height: 1.3;
  color: var(--warm-black);
  border-left: 1px solid var(--terra-rose);
  padding-left: var(--s-5);
  margin: var(--s-5) 0;
  text-wrap: balance;
}
.library .pane blockquote .who {
  display: block;
  font-style: normal;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  color: var(--rust);
  margin-top: var(--s-3);
}
.library .image {
  aspect-ratio: 5/6;
  background-size: cover;
  background-position: center;
  filter: saturate(0.85) contrast(0.96);
  box-shadow: var(--shadow-image);
}

/* syllabus list inside library */
.syllabus {
  margin-top: var(--s-5);
  border-top: 1px solid var(--cream);
}
.syllabus .row {
  display: grid;
  grid-template-columns: 80px 1fr auto;
  gap: var(--s-4);
  padding: var(--s-3) 0;
  border-bottom: 1px solid var(--cream);
  align-items: baseline;
}
.syllabus .row .num {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  color: var(--terra-rose);
}
.syllabus .row .label {
  font-family: var(--font-display);
  font-size: 18px;
  color: var(--warm-black);
}
.syllabus .row .label em { font-style: italic; }
.syllabus .row .when {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  color: var(--slate);
}

/* ============================================================
   INNER CIRCLE — membership tiers
   ============================================================ */
.tiers {
  background: var(--warm-black);
  color: var(--warm-parchment);
  padding: var(--s-9) 0;
}
.tiers .inner {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 var(--gutter);
}
.tiers .head { text-align: center; padding-bottom: var(--s-7); }
.tiers .head .eyebrow { color: var(--terra-rose); }
.tiers .head h2 {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(40px, 5vw, 68px);
  line-height: 1.04;
  margin: var(--s-3) auto 0;
  letter-spacing: -0.012em;
  max-width: 18ch;
  text-wrap: balance;
}
.tiers .head h2 em { font-style: italic; }
.tiers .grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border-top: 1px solid #1f1c17;
}
.tier {
  padding: var(--s-7) var(--s-6) var(--s-7);
  border-right: 1px solid #1f1c17;
  border-bottom: 1px solid #1f1c17;
  display: flex; flex-direction: column; gap: var(--s-4);
}
.tier:last-child { border-right: 0; }
.tier.featured {
  background: linear-gradient(180deg, rgba(192,139,110,0.06), transparent 50%);
  border-top: 1px solid var(--terra-rose);
  margin-top: -1px;
}
.tier .name {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  color: var(--terra-rose);
}
.tier h3 {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 32px;
  line-height: 1.1;
  margin: 0;
  letter-spacing: -0.005em;
}
.tier h3 em { font-style: italic; }
.tier .price {
  font-family: var(--font-display);
  font-size: 17px;
  color: #cfc6b5;
  border-top: 1px solid #1f1c17;
  border-bottom: 1px solid #1f1c17;
  padding: var(--s-3) 0;
}
.tier .price .num { font-size: 32px; color: var(--warm-parchment); margin-right: 6px; }
.tier ul {
  list-style: none;
  padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: 10px;
  font-family: var(--font-display);
  font-size: 16px;
  line-height: 1.45;
  color: #d8cfb9;
  flex: 1;
}
.tier ul li::before {
  content: "·";
  color: var(--terra-rose);
  margin-right: 10px;
  font-weight: 700;
}
.tier .cta {
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  padding: 14px 22px;
  background: var(--warm-parchment);
  color: var(--warm-black);
  text-align: center;
  text-decoration: none;
  margin-top: var(--s-3);
}
.tier.featured .cta { background: var(--terra-rose); color: var(--warm-black); }
.tier .cta:hover { background: #cfa590; }

/* ============================================================
   PRESS STRIP — quotes from publications
   ============================================================ */
.press {
  border-top: 1px solid var(--cream);
  padding: var(--s-8) 0;
}
.press .inner {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 var(--gutter);
}
.press .head {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  color: var(--rust);
  margin-bottom: var(--s-6);
  display: flex; align-items: center; gap: 14px;
}
.press .head .bar { width: 36px; height: 1px; background: var(--terra-rose); }
.press .grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--s-7);
}
.press .quote {
  display: flex; flex-direction: column; gap: var(--s-3);
}
.press .quote .text {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 22px;
  line-height: 1.35;
  color: var(--warm-black);
  margin: 0;
  text-wrap: balance;
}
.press .quote .src {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  color: var(--slate);
}
.press .quote .src .pub { color: var(--rust); }

/* ============================================================
   COVET BAR — small horizontal carousel of objects
   ============================================================ */
.covet-strip {
  background: var(--rose-light);
  border-top: 1px solid var(--cream);
  border-bottom: 1px solid var(--cream);
  padding: var(--s-7) 0;
}
.covet-strip .inner {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 var(--gutter);
}
.covet-strip .head {
  display: flex; justify-content: space-between; align-items: baseline;
  padding-bottom: var(--s-5);
}
.covet-strip .head .eyebrow { color: var(--terra-rose); }
.covet-strip .head h2 {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(28px, 3.2vw, 40px);
  line-height: 1.1;
  margin: 6px 0 0;
}
.covet-strip .head h2 em { font-style: italic; font-weight: 400; }
.covet-strip .head .all {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
}
.covet-strip .row {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: var(--s-4);
}
.covet-strip .item {
  display: flex; flex-direction: column; gap: var(--s-2);
}
.covet-strip .item .img {
  aspect-ratio: 3/4;
  background-size: cover;
  background-position: center;
  background-color: var(--cream);
}
.covet-strip .item .name {
  font-family: var(--font-display);
  font-size: 16px;
  margin-top: 8px;
}
.covet-strip .item .name em { font-style: italic; }
.covet-strip .item .where {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  color: var(--slate);
}

/* ============================================================
   COVER STRIP — an editorial banner used to break sections
   ============================================================ */
.cover-quote {
  background: var(--warm-parchment);
  padding: var(--s-9) 0;
  text-align: center;
  border-top: 1px solid var(--cream);
  border-bottom: 1px solid var(--cream);
}
.cover-quote blockquote {
  max-width: 28ch;
  margin: 0 auto;
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(32px, 4.6vw, 56px);
  line-height: 1.18;
  color: var(--warm-black);
  text-wrap: balance;
  letter-spacing: -0.005em;
}
.cover-quote blockquote::before { content: "“"; color: var(--terra-rose); display: block; font-size: 1.2em; line-height: 0.5; margin-bottom: var(--s-4); font-style: normal;}
.cover-quote .attr {
  display: block;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  color: var(--slate);
  margin-top: var(--s-5);
}

/* ============================================================
   IN-MEDIA STRIP — featured publications row of marks
   ============================================================ */
.in-media {
  border-top: 1px solid var(--cream);
  padding: var(--s-6) 0;
}
.in-media .inner {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 var(--gutter);
  display: grid;
  grid-template-columns: 200px 1fr;
  align-items: center;
  gap: var(--s-7);
}
.in-media .label {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  color: var(--rust);
  display: flex; align-items: center; gap: 12px;
}
.in-media .label .bar { width: 24px; height: 1px; background: var(--terra-rose); }
.in-media .marks {
  display: flex; gap: var(--s-7); align-items: center;
  flex-wrap: wrap;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 22px;
  letter-spacing: 0.01em;
  color: var(--warm-black);
}
.in-media .marks .it { opacity: 0.85; }
.in-media .marks .ad { font-style: italic; font-weight: 400; }
.in-media .marks .voguebold { letter-spacing: 0.16em; text-transform: uppercase; font-size: 18px; }
.in-media .marks .nyt { font-family: 'Cormorant Garamond', serif; font-weight: 700; }
.in-media .marks .small { font-family: var(--font-mono); font-size: 13px; letter-spacing: 0.04em; text-transform: uppercase; }

/* ============================================================
   END SIGNATURE
   ============================================================ */
.signoff {
  background: var(--warm-black);
  color: var(--warm-parchment);
  padding: var(--s-10) 0;
  text-align: center;
}
.signoff .inner {
  max-width: 720px;
  margin: 0 auto;
  padding: 0 var(--gutter);
}
.signoff .eyebrow { color: var(--terra-rose); }
.signoff h2 {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(36px, 4.6vw, 56px);
  line-height: 1.1;
  margin: var(--s-3) 0 var(--s-5);
  letter-spacing: -0.005em;
  text-wrap: balance;
}
.signoff h2 em { font-style: italic; }
.signoff p {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 19px;
  color: #cfc6b5;
  margin: 0 auto;
  max-width: 48ch;
  line-height: 1.55;
}
.signoff .signature {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: 36px;
  color: var(--terra-rose);
  margin-top: var(--s-5);
}

/* ============================================================
   RESPONSIVE FALLBACKS
   ============================================================ */
@media (max-width: 1024px) {
  .ledger-row { grid-template-columns: 100px 1fr 1fr 90px; }
  .ledger-row .place { display: none; }
}
@media (max-width: 900px) {
  .opener .body { grid-template-columns: 1fr; }
  .opener .deck { text-align: left; }
  .journey, .strength, .protocol, .library .inner, .tiers .grid, .press .grid, .covet-strip .row, .in-media .inner {
    grid-template-columns: 1fr !important;
  }
  .protocol .lede { padding: var(--s-7) 0; border-right: 0; border-bottom: 1px solid var(--cream); }
  .protocol .grid { grid-template-columns: 1fr; }
  .partners { grid-template-columns: repeat(2, 1fr); }
  .ledger-row { grid-template-columns: 100px 1fr; }
  .ledger-row .host, .ledger-row .place, .ledger-row .status { display: none; }
  .strength .image { min-height: 360px; }
}
