.pilot .fine-print {
  color: var(--muted);
  font-size: .66rem;
  line-height: 1.55;
}

/* Editorial product surface: visual depth without turning trust into spectacle. */
body {
  background:
    radial-gradient(circle at 88% 6%, rgba(214, 230, 207, .88) 0, transparent 27rem),
    radial-gradient(circle at 4% 36%, rgba(232, 106, 74, .08) 0, transparent 20rem),
    var(--ivory);
}

.site-header { position: relative; z-index: 4; }
.site-header { padding-top: 32px; padding-bottom: 32px; }
.brand { gap: 14px; }
.brand .chorus-mark { width: 67px; height: 32px; }
.brand > span {
  display: inline-block;
  padding-bottom: .04em;
  background: linear-gradient(100deg, var(--forest) 0%, var(--moss) 48%, var(--coral) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  font-size: clamp(1.48rem, 1.7vw, 1.82rem);
  font-weight: 850;
  letter-spacing: .145em;
}
.site-header::after { position: absolute; right: 32px; bottom: 0; left: 32px; height: 1px; background: linear-gradient(90deg, rgba(109,143,91,.38), transparent 72%); content: ""; }
.header-link { display: inline-flex; align-items: center; min-height: 34px; padding: 0 12px; border: 1px solid #9caf9b; border-radius: 999px; text-decoration: none; transition: background .2s ease, color .2s ease, transform .2s ease; }
.header-link:hover { background: var(--forest); color: var(--ivory); transform: translateY(-1px); }
.hero { position: relative; isolation: isolate; padding-bottom: 58px; }
.hero::after { position: absolute; z-index: -1; top: 78px; right: -72px; width: 122px; height: 122px; border: 1px solid rgba(109, 143, 91, .38); border-radius: 50%; box-shadow: 22px 21px 0 -1px rgba(232, 106, 74, .17), 44px 42px 0 -1px rgba(109, 143, 91, .14); content: ""; }
.hero h1 { max-width: 720px; }
.hero-copy { max-width: 595px; }
.hero-actions { margin-top: 34px; }
.primary { border-radius: 999px; padding: 15px 20px; }

.trip-snapshot {
  position: relative;
  overflow: hidden;
  max-width: 1116px;
  margin: 0 32px;
  border: 1px solid #8ea38d;
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(255,255,251,.96), rgba(232, 239, 225, .92));
  box-shadow: 0 26px 70px rgba(30, 58, 47, .15);
}
.trip-snapshot::before { position: absolute; top: -125px; right: -85px; width: 315px; height: 315px; border-radius: 50%; background: radial-gradient(circle, rgba(232, 106, 74, .22) 0 1px, transparent 1.5px); background-size: 13px 13px; content: ""; opacity: .72; transform: rotate(18deg); }
.trip-snapshot::after { position: absolute; right: 30px; bottom: 24px; width: 63px; height: 9px; border-radius: 99px; background: var(--coral); content: ""; }
.snapshot-topbar { position: relative; z-index: 1; }
.snapshot-kicker { font-weight: 850; }
.snapshot-heading { position: relative; z-index: 1; }
.snapshot-heading h2 { font-size: clamp(2.65rem, 5.6vw, 4.8rem); }
.snapshot-heading h2 em { color: var(--coral); font-style: normal; }
.snapshot-grid { position: relative; z-index: 1; }
.snapshot-grid article { transition: transform .25s ease, box-shadow .25s ease; }
.snapshot-grid article:hover { box-shadow: 0 14px 26px rgba(30, 58, 47, .11); transform: translateY(-4px); }
.brief-tags span { background: rgba(255,255,251,.72); }
.source-note { position: relative; z-index: 1; }

.feature-grid article { border-top: 0; padding-top: 0; }
.feature-break { display: block; width: 100%; height: 22px; margin: 0 0 22px; overflow: visible; fill: none; }
.feature-break path { fill: none; stroke: var(--moss); stroke-linecap: round; stroke-width: 1.4; vector-effect: non-scaling-stroke; }
.feature-grid article:nth-child(2) .feature-break path { stroke: var(--coral); }
.feature-grid article:nth-child(3) .feature-break path { stroke: var(--forest); }
.feature-grid h3 { margin-top: 0; }

@media (max-width: 700px) {
  .site-header { padding-top: 24px; padding-bottom: 24px; }
  .brand { gap: 10px; }
  .brand .chorus-mark { width: 51px; height: auto; }
  .brand > span { font-size: 1.28rem; letter-spacing: .13em; }
  .site-header::after { right: 22px; left: 22px; }
  .hero::after { top: 70px; right: 14px; width: 74px; height: 74px; }
  .trip-snapshot { margin: 0 16px; border-radius: 14px; }
  .snapshot-heading h2 { font-size: clamp(2.5rem, 12vw, 3.8rem); }
  .snapshot-grid article:hover { transform: none; }
}

/* Let desktop use its canvas; collapse naturally into a single-column story on smaller screens. */
.hero-stage {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(390px, .92fr);
  gap: clamp(48px, 7vw, 122px);
  align-items: center;
  min-height: min(820px, calc(100svh - 24px));
  padding: clamp(48px, 8vh, 106px) 32px clamp(64px, 9vh, 122px);
}

.hero-stage .hero {
  max-width: none;
  padding: 0;
}

.hero-stage .trip-snapshot {
  width: 100%;
  margin: 0;
}

.hero-stage .snapshot-heading { padding: 29px 5px 22px; }
.hero-stage .snapshot-heading h2 { font-size: clamp(2.5rem, 4vw, 4.35rem); }
.hero-stage .snapshot-grid { gap: 8px; }
.hero-stage .snapshot-grid article { min-height: 135px; padding: 13px; }
.hero-stage .next-content { gap: 8px; }
.hero-stage .next-content h3 { font-size: .76rem; }
.hero-stage .next-content p,
.hero-stage .brief-card > p,
.hero-stage .balance-card > p { font-size: .58rem; }
.hero-stage .brief-tags span { padding: 4px 5px; font-size: .53rem; }
.hero-stage .balance-card strong { font-size: 1.08rem; }

.phone-demo { padding-top: clamp(64px, 8vw, 104px); padding-bottom: clamp(70px, 8vw, 112px); }
.statement { padding-top: clamp(86px, 9vw, 132px); padding-bottom: clamp(86px, 9vw, 132px); }
.features { padding-bottom: clamp(84px, 9vw, 124px); }
.pilot { padding-top: clamp(92px, 10vw, 132px); padding-bottom: clamp(92px, 10vw, 132px); }

@media (max-width: 980px) {
  .hero-stage { grid-template-columns: 1fr; min-height: 0; gap: 48px; padding-top: 74px; }
  .hero-stage .hero { max-width: 760px; }
  .hero-stage .trip-snapshot { max-width: 760px; }
}

@media (max-width: 700px) {
  .hero-stage { gap: 38px; padding: 68px 22px 68px; }
  .hero-stage .trip-snapshot { margin: 0; }
  .hero-stage .snapshot-heading { padding: 25px 3px 19px; }
  .hero-stage .snapshot-grid { grid-template-columns: 1fr; }
  .hero-stage .snapshot-grid article { min-height: auto; }
  .phone-demo { padding-top: 68px; padding-bottom: 76px; }
  .phone-demo-stage { min-height: 630px; }
  .statement { padding-top: 82px; padding-bottom: 82px; }
  .features { padding-bottom: 84px; }
  .pilot { padding-top: 90px; padding-bottom: 90px; }
}

.activity-theater {
  display: grid;
  grid-template-columns: 1.07fr .93fr;
  gap: 12px;
  min-height: 216px;
}

.activity-stream,
.agent-stage {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 15px;
  background: #fffefb;
}

.agent-stage {
  border-color: #9faf9d;
  background: linear-gradient(145deg, #f7f6ea, #e4ecdc);
}

.activity-theater .label {
  margin: 0 0 11px;
}

.activity-message {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 8px 0 0;
  padding: 8px;
  border-radius: 8px;
  background: #f7f8f2;
  color: var(--forest);
  font-size: .66rem;
  line-height: 1.35;
  opacity: .38;
  transform: translateX(-8px);
  animation: activityCycle 12s infinite both;
}

.activity-message p,
.agent-response p {
  margin: 0;
}

.activity-avatar {
  display: grid;
  place-items: center;
  width: 19px;
  height: 19px;
  flex: none;
  border-radius: 50%;
  background: var(--moss);
  color: var(--ivory);
  font-size: .55rem;
  font-weight: 800;
}

.activity-two .activity-avatar { background: var(--coral); }
.activity-three .activity-avatar { background: var(--forest); }
.activity-two { animation-delay: 4s; }
.activity-three { animation-delay: 8s; }

.agent-response {
  position: absolute;
  right: 15px;
  bottom: 15px;
  left: 15px;
  display: flex;
  align-items: flex-start;
  gap: 9px;
  padding: 11px;
  border: 1px solid #a7b5a3;
  border-radius: 9px;
  background: rgba(255, 255, 251, .93);
  color: var(--forest);
  font-size: .67rem;
  line-height: 1.35;
  opacity: 0;
  transform: translateY(10px);
  animation: responseCycle 12s infinite both;
}

.agent-response b { display: block; margin-bottom: 3px; }
.agent-response small { display: block; margin-top: 6px; color: var(--moss); font-size: .57rem; font-weight: 800; }
.agent-dot { display: grid; place-items: center; width: 21px; height: 21px; flex: none; border-radius: 6px; background: var(--coral); color: var(--forest); font-size: .72rem; font-weight: 900; }
.response-two { animation-delay: 4s; }
.response-three { animation-delay: 8s; }

@keyframes activityCycle {
  0%, 5% { opacity: .38; transform: translateX(-8px); }
  10%, 30% { opacity: 1; transform: translateX(0); box-shadow: 0 5px 12px rgba(30, 58, 47, .09); }
  35%, 100% { opacity: .38; transform: translateX(0); box-shadow: none; }
}

@keyframes responseCycle {
  0%, 9% { opacity: 0; transform: translateY(10px); }
  14%, 30% { opacity: 1; transform: translateY(0); }
  35%, 100% { opacity: 0; transform: translateY(-5px); }
}

@media (max-width: 700px) {
  .activity-theater { grid-template-columns: 1fr; min-height: 410px; }
  .activity-stream { min-height: 195px; }
  .agent-stage { min-height: 195px; }
}

@media (prefers-reduced-motion: reduce) {
  .activity-message,
  .agent-response { animation: none; transform: none; }
  .activity-message { opacity: 1; }
  .agent-response { position: static; margin-top: 8px; opacity: 1; }
  .agent-stage { display: block; }
}

/* Private-text showcase: a conversational front door, not another group chat. */
.phone-demo {
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(340px, .98fr);
  gap: clamp(46px, 8vw, 110px);
  align-items: center;
  max-width: 1080px;
  margin: 0 auto;
  padding: 84px 32px 146px;
}

.phone-demo-copy h2 {
  max-width: 610px;
  margin: 0;
  font-family: "Source Serif 4", Georgia, serif;
  font-size: clamp(3rem, 5.4vw, 5.1rem);
  font-weight: 500;
  letter-spacing: -.06em;
  line-height: .91;
}

.phone-demo-copy > p:not(.eyebrow) {
  max-width: 530px;
  margin: 25px 0 0;
  color: var(--muted);
  font-size: clamp(1.06rem, 1.35vw, 1.2rem);
  line-height: 1.62;
}

.phone-proof {
  display: grid;
  gap: 14px;
  margin: 35px 0 0;
  padding: 0;
  list-style: none;
}

.phone-proof li {
  display: grid;
  grid-template-columns: 28px 1fr;
  gap: 12px;
  align-items: start;
  max-width: 500px;
  padding-top: 13px;
  border-top: 1px solid #b7c5b4;
}

.phone-proof li > span {
  color: var(--coral);
  font-size: .64rem;
  font-weight: 850;
  letter-spacing: .08em;
}

.phone-proof b {
  display: block;
  font-size: .92rem;
}

.phone-proof p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: .84rem;
  line-height: 1.5;
}

.phone-demo-stage {
  position: relative;
  display: grid;
  justify-items: center;
  min-height: 686px;
  padding: 10px 0 0;
}

.phone-shell {
  position: relative;
  z-index: 1;
  width: min(100%, 302px);
  min-height: 0;
  height: 654px;
  aspect-ratio: 9 / 19.5;
  overflow: hidden;
  border: 7px solid #111111;
  border-radius: 37px;
  background: #ffffff;
  box-shadow: 0 28px 50px rgba(30, 58, 47, .2), inset 0 0 0 1px rgba(255,255,255,.5);
}

.phone-camera {
  position: absolute;
  z-index: 2;
  top: 8px;
  left: 50%;
  width: 91px;
  height: 21px;
  border-radius: 0 0 13px 13px;
  background: #111111;
  transform: translateX(-50%);
}

.phone-status {
  display: flex;
  justify-content: space-between;
  padding: 9px 23px 6px;
  color: #111111;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", sans-serif;
  font-size: .56rem;
  font-weight: 750;
}

.phone-status-icons { letter-spacing: .06em; }

.phone-header {
  display: grid;
  grid-template-columns: 25px 1fr 25px;
  align-items: center;
  min-height: 61px;
  padding: 7px 15px 9px;
  border-bottom: 1px solid #dfe0e3;
  background: #ffffff;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", sans-serif;
}

.sms-back { color: #007aff; font-size: 2.05rem; font-weight: 300; line-height: .5; }
.phone-header > div { display: grid; justify-items: center; }
.phone-header b { display: block; margin-top: 2px; color: #111111; font-size: .68rem; }
.phone-header small { display: block; margin-top: 1px; color: #6e6e73; font-size: .5rem; }
.sms-avatar { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: #d7d7dc; color: #505057; font-size: .55rem; font-weight: 850; }
.phone-info { display: grid; place-items: center; width: 17px; height: 17px; justify-self: end; border: 1.5px solid #007aff; border-radius: 50%; color: #007aff; font-family: Georgia, serif; font-size: .63rem; font-style: italic; font-weight: 700; }

.phone-thread {
  display: flex;
  flex-direction: column;
  min-height: 465px;
  padding: 12px 12px 16px;
  background: #ffffff;
}

.sms-day { margin: 0 0 9px; color: #8e8e93; font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", sans-serif; font-size: .48rem; font-weight: 500; text-align: center; }

.sms-message {
  max-width: 82%;
  margin: 0 0 8px;
  padding: 8px 10px;
  border-radius: 15px;
  color: #111111;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", sans-serif;
  font-size: .63rem;
  line-height: 1.35;
  opacity: 0;
  transform: translateY(7px);
}

.sms-message b { font-size: .63rem; }
.sms-message small { color: #545459; font-size: .53rem; }
.sms-message span { display: block; margin-top: 5px; color: #313136; font-size: .55rem; font-weight: 600; }
.sms-message strong { color: #111111; }
.sms-user { align-self: flex-end; border-bottom-right-radius: 4px; background: #34c759; }
.sms-curly { align-self: flex-start; border-bottom-left-radius: 4px; background: #e9e9eb; }
.sms-intro { animation: smsIntro 24s infinite both; }
.sms-question { animation: smsQuestion 24s infinite both; }
.sms-answer { animation: smsAnswer 24s infinite both; }
.sms-expense { animation: smsExpense 24s infinite both; }
.sms-draft { animation: smsDraft 24s infinite both; }

.phone-compose {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 50px;
  gap: 7px;
  padding: 8px 10px;
  border-top: 1px solid #dfdfe3;
  background: #f7f7f8;
  color: #8e8e93;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", sans-serif;
  font-size: .58rem;
}

.compose-plus { color: #8e8e93; font-size: 1.32rem; font-weight: 300; line-height: 1; }
.compose-field { position: relative; flex: 1; min-width: 0; padding: 6px 9px; border: 1px solid #d5d5d8; border-radius: 14px; background: #ffffff; overflow: hidden; }
.compose-placeholder { display: block; }
.compose-typed { position: absolute; top: 6px; left: 9px; display: block; width: 0; overflow: hidden; color: #252529; font-size: .5rem; font-weight: 600; line-height: 1.2; white-space: nowrap; opacity: 0; }
.compose-question-typed { animation: composeTypingQuestion 24s infinite both; }
.compose-expense-typed { animation: composeTypingExpense 24s infinite both; }
.compose-mic { display: grid; place-items: center; width: 18px; height: 18px; color: #67676c; font-size: 1rem; font-weight: 700; transform: rotate(-35deg); animation: composeMic 24s infinite both; }
.compose-send { display: grid; place-items: center; width: 18px; height: 18px; margin-left: -25px; border-radius: 50%; background: #34c759; color: #ffffff; font-size: .75rem; font-weight: 850; line-height: 1; opacity: 0; transform: scale(.75); animation: composeSend 24s infinite both; }

@keyframes composeTypingQuestion {
  0%, 15% { width: 0; opacity: 0; }
  16% { width: 0; opacity: 1; }
  25% { width: 100%; opacity: 1; }
  28%, 100% { width: 100%; opacity: 0; }
}
@keyframes composeTypingExpense { 0%, 47% { width: 0; opacity: 0; } 48% { width: 0; opacity: 1; } 60% { width: 100%; opacity: 1; } 64%, 100% { width: 100%; opacity: 0; } }

@keyframes composeSend {
  0%, 23% { opacity: 0; transform: scale(.75); }
  24%, 26% { opacity: 1; transform: scale(1); }
  27% { opacity: 1; transform: scale(.76); }
  29%, 59% { opacity: 0; transform: scale(.75); }
  60%, 62% { opacity: 1; transform: scale(1); }
  63% { opacity: 1; transform: scale(.76); }
  65%, 100% { opacity: 0; transform: scale(.75); }
}

@keyframes composeMic {
  0%, 23% { opacity: 1; }
  24%, 28% { opacity: 0; }
  29%, 59% { opacity: 1; }
  60%, 64% { opacity: 0; }
  65%, 100% { opacity: 1; }
}

.shared-record-card {
  position: absolute;
  z-index: 2;
  right: -18px;
  bottom: 17px;
  display: grid;
  gap: 4px;
  width: 184px;
  padding: 12px;
  border: 1px solid #9fb69b;
  border-radius: 10px;
  background: #fbfdf6;
  box-shadow: 0 15px 28px rgba(30,58,47,.17);
  animation: recordCycle 24s infinite both;
}

.shared-record-card > div { display: flex; align-items: center; justify-content: space-between; }
.shared-record-card p { margin: 0; color: var(--moss); font-size: .51rem; font-weight: 850; letter-spacing: .09em; }
.record-check { display: grid; place-items: center; width: 17px; height: 17px; border-radius: 50%; background: var(--forest); color: var(--ivory); font-size: .53rem; font-weight: 850; }
.shared-record-card b { font-size: .68rem; }
.shared-record-card > span,.shared-record-card small { color: var(--muted); font-size: .56rem; line-height: 1.35; }

@keyframes smsIntro { 0%, 4% { opacity: 0; transform: translateY(7px); } 8%, 100% { opacity: 1; transform: translateY(0); } }
@keyframes smsQuestion { 0%, 27% { opacity: 0; transform: translateY(7px); } 31%, 100% { opacity: 1; transform: translateY(0); } }
@keyframes smsAnswer { 0%, 38% { opacity: 0; transform: translateY(7px); } 42%, 100% { opacity: 1; transform: translateY(0); } }
@keyframes smsExpense { 0%, 62% { opacity: 0; transform: translateY(7px); } 66%, 100% { opacity: 1; transform: translateY(0); } }
@keyframes smsDraft { 0%, 72% { opacity: 0; transform: translateY(7px); } 76%, 100% { opacity: 1; transform: translateY(0); } }

@keyframes recordCycle {
  0%, 88% { opacity: 0; transform: translate(12px, 12px) scale(.96); }
  92%, 97% { opacity: 1; transform: translate(0, 0) scale(1); }
  100% { opacity: 0; transform: translate(8px, -3px) scale(.98); }
}

.sms-screen { position: absolute; inset: 0; animation: smsScreenCycle 24s infinite both; }
.phone-camera { z-index: 5; }
@keyframes smsScreenCycle { 0%, 83% { opacity: 1; transform: translateX(0); } 88%, 100% { opacity: 0; transform: translateX(-10px); } }

.phone-compose { animation: composeLift 24s infinite both; }
.compose-placeholder { animation: composePlaceholder 24s infinite both; }
.compose-typed { animation-timing-function: steps(46, end); }
@keyframes composePlaceholder { 0%, 15% { opacity: 1; } 16%, 28% { opacity: 0; } 29%, 47% { opacity: 1; } 48%, 64% { opacity: 0; } 65%, 100% { opacity: 1; } }
@keyframes composeLift { 0%, 14% { bottom: 0; } 17%, 28% { bottom: 194px; } 32%, 46% { bottom: 0; } 49%, 64% { bottom: 194px; } 68%, 100% { bottom: 0; } }

.phone-keyboard { position: absolute; right: 0; bottom: -198px; left: 0; z-index: 3; height: 194px; padding: 7px 5px 5px; background: #d1d4da; color: #111111; font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", sans-serif; animation: keyboardLift 24s infinite both; }
.keyboard-suggestions { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; min-height: 22px; margin: -7px -5px 6px; background: #eceef1; color: #73767c; font-size: .49rem; text-align: center; }
.keyboard-suggestions span { display: grid; place-items: center; border-right: 1px solid #d4d6da; }
.keyboard-row { display: grid; grid-template-columns: repeat(10, 1fr); gap: 4px; margin: 0 0 5px; }
.keyboard-row i { display: grid; place-items: center; min-height: 25px; border-radius: 4px; background: #fbfbfc; box-shadow: 0 1px 0 rgba(0,0,0,.17); font-size: .53rem; font-style: normal; }
.keyboard-row-mid { grid-template-columns: repeat(9, 1fr); padding: 0 12px; }
.keyboard-row-bottom { grid-template-columns: 1.45fr repeat(7, 1fr) 1.45fr; }
.keyboard-row-bottom i:first-child, .keyboard-row-bottom i:last-child { background: #aeb2ba; }
.keyboard-controls { display: grid; grid-template-columns: 1.2fr 3.6fr 1.5fr; gap: 5px; }
.keyboard-controls span, .keyboard-controls b { display: grid; place-items: center; min-height: 26px; border-radius: 4px; background: #aeb2ba; font-size: .5rem; font-weight: 500; }
.keyboard-controls b { background: #fbfbfc; }
@keyframes keyboardLift { 0%, 14% { bottom: -198px; } 17%, 28% { bottom: 0; } 32%, 46% { bottom: -198px; } 49%, 64% { bottom: 0; } 68%, 100% { bottom: -198px; } }

.phone-dashboard { position: absolute; inset: 0; z-index: 4; overflow: hidden; background: #f7f6ee; color: var(--forest); font-family: Manrope, Avenir, Helvetica, Arial, sans-serif; opacity: 0; transform: translateX(12px); animation: dashboardCycle 24s infinite both; }
.dashboard-top { display: flex; align-items: center; gap: 8px; padding: 28px 15px 13px; border-bottom: 1px solid #c8d1c3; background: #fffef9; }
.dashboard-top > div { display: grid; gap: 1px; flex: 1; }.dashboard-top b { font-size: .56rem; font-weight: 850; letter-spacing: .12em; }.dashboard-top small { color: var(--muted); font-size: .49rem; }.dashboard-top > span:last-child { display: grid; place-items: center; width: 20px; height: 20px; border: 1px solid #aebbad; border-radius: 50%; color: var(--muted); font-size: .8rem; }.dashboard-mark { display: grid; place-items: center; width: 25px; height: 25px; border-radius: 8px; background: var(--forest); color: var(--ivory); font-family: "Source Serif 4", Georgia, serif; font-size: .93rem; }
.expense-review { padding: 19px 17px; }.expense-review > p { margin: 0 0 10px; color: var(--moss); font-size: .5rem; font-weight: 850; letter-spacing: .12em; }.expense-review h3 { margin: 0; font-family: "Source Serif 4", Georgia, serif; font-size: 1.35rem; font-weight: 600; letter-spacing: -.04em; }.expense-review > strong { display: block; margin: 4px 0 16px; font-size: 1.45rem; letter-spacing: -.06em; }.expense-detail { display: flex; justify-content: space-between; padding: 10px 0; border-top: 1px solid #d4dbd0; font-size: .56rem; }.expense-detail span { color: var(--muted); }.expense-split { display: grid; gap: 5px; margin: 13px 0; padding: 10px; border-radius: 8px; background: #fffef9; font-size: .54rem; }.expense-split span { display: flex; justify-content: space-between; }.expense-review-button { display: flex; align-items: center; justify-content: space-between; margin-top: 17px; padding: 10px 11px; border-radius: 6px; background: var(--forest); color: var(--ivory); font-size: .56rem; font-weight: 800; }.expense-review > small { display: block; margin-top: 11px; color: var(--muted); font-size: .48rem; line-height: 1.35; }
@keyframes dashboardCycle { 0%, 86% { opacity: 0; transform: translateX(12px); } 90%, 97% { opacity: 1; transform: translateX(0); } 100% { opacity: 0; transform: translateX(-6px); } }

@media (max-width: 760px) {
  .phone-demo { grid-template-columns: 1fr; gap: 47px; padding: 78px 22px 105px; }
  .phone-demo-stage { min-height: 650px; }
  .phone-shell { width: min(100%, 286px); height: 620px; min-height: 0; }
  .phone-thread { min-height: 430px; }
  .shared-record-card { right: max(-2px, calc(50% - 184px)); bottom: 0; }
}

/* The messaging story needs a single column before the copy becomes a narrow rail. */
@media (max-width: 1080px) {
  .phone-demo { grid-template-columns: minmax(0, 1fr); max-width: 720px; gap: 52px; }
  .phone-demo-copy { width: 100%; }
  .phone-demo-stage { width: 100%; }
}

.phone-proof li { grid-template-columns: minmax(0, 1fr); gap: 0; width: 100%; }
.phone-proof li > div { min-width: 0; }
.phone-proof li > span { display: none; }

/* A tighter, two-level close keeps the pilot CTA and site footer visually connected. */
.pilot { margin-inline: auto; padding-top: clamp(82px, 7vw, 108px); padding-bottom: clamp(68px, 6vw, 88px); }
footer {
  display: grid;
  grid-template-columns: minmax(210px, 1fr) minmax(0, 650px);
  gap: 26px 56px;
  align-items: start;
  width: 100%;
  padding-top: 34px;
  padding-bottom: 30px;
}
.footer-brand { min-width: 0; }
.footer-brand .brand { gap: 9px; }
.footer-brand .brand .chorus-mark { width: 43px; height: auto; }
.footer-brand .brand > span { font-size: 1rem; letter-spacing: .14em; }
.footer-brand > p { margin: 9px 0 0; color: var(--muted); font-size: .68rem; font-weight: 600; line-height: 1.35; }
.footer-nav { display: grid; grid-template-columns: repeat(6, max-content); justify-content: space-between; width: 100%; gap: clamp(10px, 1.7vw, 28px); padding-top: 2px; }
.footer-nav a { color: var(--muted); font-size: .67rem; font-weight: 700; text-decoration: none; transition: color .15s ease; }
.footer-nav a:hover { color: var(--coral); }
.footer-copyright { grid-column: 1 / -1; margin: -4px 0 0; color: var(--muted); font-size: .57rem; font-weight: 600; }

/* Extend the color field to the viewport while content stays in the site frame. */
.privacy-band {
  position: relative;
  width: auto;
  margin-inline: 0;
  padding-right: 32px;
  padding-left: 32px;
  box-shadow: 0 0 0 100vmax var(--forest);
  clip-path: inset(0 -100vmax);
}

.placeholder-page main { max-width: 760px; min-height: 100svh; margin: 0 auto; padding: clamp(34px, 6vw, 76px) 32px; }
.placeholder-brand { display: inline-block; margin-bottom: clamp(90px, 16vh, 165px); background: linear-gradient(100deg, var(--forest), var(--moss), var(--coral)); -webkit-background-clip: text; background-clip: text; color: transparent; font-size: 1.08rem; font-weight: 850; letter-spacing: .15em; text-decoration: none; }
.placeholder-page h1 { max-width: 680px; margin: 0; font-family: "Source Serif 4", Georgia, serif; font-size: clamp(3.2rem, 7vw, 5.8rem); font-weight: 500; letter-spacing: -.065em; line-height: .91; }
.placeholder-page main > p:not(.eyebrow) { max-width: 580px; margin: 26px 0 32px; color: var(--muted); font-size: 1rem; line-height: 1.7; }
.placeholder-page section { max-width: 670px; margin: 44px 0 38px; padding-top: 6px; border-top: 1px solid var(--line); }
.placeholder-page section h2 { margin: 29px 0 7px; font-family: "Source Serif 4", Georgia, serif; font-size: clamp(1.55rem, 3vw, 2rem); font-weight: 600; letter-spacing: -.04em; }
.placeholder-page section p { margin: 0; color: var(--muted); font-size: .91rem; line-height: 1.68; }
.placeholder-page section a { color: var(--forest); font-weight: 800; text-underline-offset: 4px; }
.placeholder-links { display: grid; gap: 10px; margin: 30px 0; padding: 0; list-style: none; }
.placeholder-links a { color: var(--forest); font-weight: 750; text-underline-offset: 5px; }
.placeholder-links span { display: block; margin-top: 3px; color: var(--muted); font-size: .82rem; }

@media (max-width: 700px) {
  footer { grid-template-columns: minmax(0, 1fr); max-width: none; gap: 24px; margin: 0; padding: 28px max(22px, env(safe-area-inset-right)) 25px max(22px, env(safe-area-inset-left)); }
  .footer-brand { justify-self: stretch; }
  .footer-nav { grid-template-columns: repeat(6, max-content); justify-content: space-between; gap: clamp(4px, 1.5vw, 10px); padding-top: 0; }
  .footer-nav a { font-size: clamp(.52rem, 2.35vw, .64rem); text-align: center; white-space: nowrap; }
  .footer-copyright { margin: -8px 0 0; }
  .privacy-band { padding-right: 22px; padding-left: 22px; }
}

@media (prefers-reduced-motion: reduce) {
  .sms-message,
  .shared-record-card,
  .compose-typed,
  .compose-send,
  .compose-mic { animation: none; transform: none; opacity: 1; }
  .sms-question,
  .sms-answer { display: none; }
  .sms-expense { margin-top: 70px; }
  .compose-placeholder { display: none; }
  .compose-typed { position: static; width: auto; white-space: normal; }
  .compose-send { margin-left: 0; }
  .phone-keyboard,
  .phone-dashboard { display: none; }
}
