/* ============================================================================
   Shared section components for Home, AI and Marketing.
   Each block is a distinct layout so no two sections on a page look alike.
   Uses only tokens every page defines: --navy-0/50/950, --sun-400, --cobalt-500,
   --r-card, --r-pill, --shadow-border, --shadow-float, --sc-ink, --sc-ink-soft.
   Scroll-driven parts read --sc-p, which the engine publishes on each act.
   ============================================================================ */

/* ---------- marquee: rows of pills drifting in opposite directions ---------- */
.mq { position: relative; overflow: hidden; display: grid; gap: .75rem; padding-block: clamp(1.25rem, 3vw, 2rem);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
          mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent); }
.mq__row { display: flex; gap: .75rem; width: max-content; animation: sc-mq 44s linear infinite; will-change: transform; }
.mq__row--rev { animation-direction: reverse; animation-duration: 56s; }
.mq__row > span { flex: none; display: inline-flex; align-items: center; gap: .55rem; padding: .7rem 1.1rem; border-radius: var(--r-pill);
  background: var(--navy-0); color: var(--sc-ink); box-shadow: var(--shadow-border); font-weight: 600; font-size: .9375rem; white-space: nowrap; }
.mq__row > span::before { content: ""; width: .5rem; height: .5rem; border-radius: 50%; background: var(--sun-400); box-shadow: 0 0 0 1px var(--navy-950); }
@keyframes sc-mq { to { transform: translateX(calc(-50% - .375rem)); } }
@media (hover: hover) and (pointer: fine) { .mq:hover .mq__row { animation-play-state: paused; } }
@media (prefers-reduced-motion: reduce) {
  .mq { -webkit-mask-image: none; mask-image: none; }
  .mq__row { animation: none; width: auto; flex-wrap: wrap; padding-inline: clamp(1.25rem, 4vw, 3rem); }
  .mq__row > [aria-hidden="true"] { display: none; }
}

/* ---------- manifesto: dark pinned stage, words land one by one ---------- */
.manifesto { background: var(--navy-950); color: var(--navy-0); }
.manifesto .sc-stage { display: grid; place-items: center; padding-inline: clamp(1.25rem, 5vw, 4rem); }
.manifesto__inner { width: 100%; max-width: 72rem; display: grid; gap: clamp(1rem, 3vh, 2rem); }
.manifesto .eyebrow { color: var(--sun-400); }
.manifesto h2 { font-size: clamp(2.5rem, 1.1rem + 6.4vw, 6.6rem); line-height: .96; letter-spacing: -0.05em; color: var(--navy-0); max-width: 14ch; }
.manifesto h2.manifesto__alt { color: var(--sun-400); }
.manifesto p { max-width: 34rem; color: oklch(1 0 0 / .72); font-size: clamp(1rem, .95rem + .3vw, 1.2rem); }
.manifesto__bar { height: 4px; max-width: 20rem; border-radius: 4px; background: oklch(1 0 0 / .16); overflow: hidden; }
.manifesto__bar i { display: block; height: 100%; background: var(--sun-400); transform-origin: left; transform: scaleX(var(--sc-p, 0)); }

/* ---------- follow-the-lead: a dot travels a track, stations light up ---------- */
.follow { background: var(--bg-subtle); }
.follow .sc-stage { display: grid; align-content: center; padding-inline: clamp(1.25rem, 4vw, 3rem); }
.follow__wrap { width: 100%; max-width: 76rem; margin-inline: auto; display: grid; gap: clamp(1.5rem, 5vh, 3rem); }
.follow__head h2 { font-size: clamp(1.9rem, 1.2rem + 2.6vw, 3.4rem); max-width: 16ch; margin-top: .6rem; }
.follow__track { list-style: none; margin: 0; padding: 0; position: relative; display: grid; gap: 1rem; }
.follow__track::before, .follow__track::after { content: ""; position: absolute; border-radius: 4px; }
.follow__track::before { background: var(--line-strong, #cfd5e2); }
.follow__track::after { background: var(--cobalt-500); transform-origin: left top; }
.follow__dot { position: absolute; width: 1.1rem; height: 1.1rem; border-radius: 50%; background: var(--sun-400); box-shadow: 0 0 0 2px var(--navy-950), 0 0 0 8px oklch(0.87 0.17 95 / .35); }
.follow__st { position: relative; padding-inline-start: 2.6rem; }
.follow__st b { display: block; font-size: 1.25rem; letter-spacing: -0.02em; font-family: var(--sc-font-display); }
.follow__st p { margin-top: .35rem; color: var(--sc-ink-soft); font-size: .9375rem; line-height: 1.5; }
.follow__st::before { content: ""; position: absolute; inset-inline-start: .3rem; top: .35rem; width: .8rem; height: .8rem; border-radius: 50%; background: var(--navy-0); box-shadow: 0 0 0 2px var(--navy-950); }
/* mobile: vertical track, dot slides down the left edge */
.follow__track::before, .follow__track::after { inset-inline-start: .66rem; top: .6rem; bottom: .6rem; width: 4px; }
.follow__track::after { transform: scaleY(var(--sc-p, 0)); transform-origin: top; }
.follow__lead { inset-inline-start: .2rem; top: calc(.1rem + var(--sc-p, 0) * (100% - 1.2rem)); }
@media (min-width: 900px) {
  .follow__track { grid-template-columns: repeat(4, 1fr); gap: 1.5rem; padding-top: 3rem; }
  .follow__track::before, .follow__track::after { inset-inline: 0; top: 1.05rem; bottom: auto; width: auto; height: 4px; }
  .follow__track::after { transform: scaleX(var(--sc-p, 0)); transform-origin: left; }
  .follow__lead { top: .55rem; inset-inline-start: calc(var(--sc-p, 0) * (100% - 1.1rem)); }
  .follow__st { padding-inline-start: 0; }
  .follow__st::before { inset-inline-start: 0; top: -2.4rem; }
}

/* ---------- stat band: big counters on a cobalt ground ---------- */
.statband { background: var(--cobalt-500); color: #fff; padding-block: clamp(2.5rem, 6vw, 4.5rem); }
.statband__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: clamp(1.5rem, 4vw, 3rem) 1.5rem; }
@media (min-width: 800px) { }
.statband__grid b { display: block; font-family: var(--sc-font-display); font-size: clamp(2.8rem, 1.6rem + 5vw, 5.5rem); line-height: .9; letter-spacing: -0.05em; font-variant-numeric: tabular-nums; }
.statband__grid span { display: block; margin-top: .6rem; max-width: 14rem; font-size: .9375rem; line-height: 1.35; color: oklch(1 0 0 / .84); }
.statband__grid li { padding-top: 1rem; border-top: 2px solid oklch(1 0 0 / .35); }

/* ---------- terminal log: pinned dark stage, lines appear as you scroll ---------- */
.log { background: var(--navy-950); color: var(--navy-0); }
.log .sc-stage { display: grid; align-content: center; padding-inline: clamp(1.25rem, 4vw, 3rem); }
.log__grid { width: 100%; max-width: 72rem; margin-inline: auto; display: grid; gap: clamp(1.25rem, 4vw, 3rem); align-items: center; }
@media (min-width: 900px) { .log__grid { grid-template-columns: .85fr 1.15fr; } }
.log .eyebrow { color: var(--sun-400); }
.log h2 { color: var(--navy-0); font-size: clamp(1.9rem, 1.2rem + 2.6vw, 3.4rem); max-width: 13ch; margin-top: .6rem; }
.log__sub { margin-top: .85rem; color: oklch(1 0 0 / .72); max-width: 28rem; }
.term { border-radius: var(--r-card); overflow: hidden; background: color-mix(in oklab, var(--navy-950), white 7%);
  box-shadow: 0 0 0 1px oklch(1 0 0 / .1), 0 30px 60px -30px oklch(0 0 0 / .6); }
.term__bar { display: flex; gap: .4rem; padding: .75rem 1rem; border-bottom: 1px solid oklch(1 0 0 / .08); }
.term__bar i { width: .65rem; height: .65rem; border-radius: 50%; background: oklch(1 0 0 / .22); }
.term__body { padding: clamp(1rem, 2.5vw, 1.75rem); display: grid; gap: clamp(.9rem, 2.2vh, 1.4rem);
  font: 500 clamp(.85rem, .78rem + .35vw, 1.02rem)/1.55 ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; }
.term__line { display: grid; grid-template-columns: auto 1fr; gap: .2rem .9rem; }
.term__line b { color: var(--sun-400); font-weight: 600; }
.term__line span { color: oklch(1 0 0 / .9); }
.term__line small { grid-column: 2; color: oklch(1 0 0 / .58); font-size: .92em; }
.term__cursor { display: inline-block; width: .6em; height: 1.1em; background: var(--sun-400); vertical-align: -.2em; animation: sc-blink 1s steps(2, jump-none) infinite; }
@keyframes sc-blink { 50% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .term__cursor { animation: none; } }

/* ---------- price ladder: four steps that climb, last one lit ---------- */
.ladder { list-style: none; padding: 0; margin: clamp(1.5rem, 4vw, 2.5rem) 0 0; display: grid; gap: .9rem; counter-reset: lad; }
@media (min-width: 900px) {
  .ladder { grid-template-columns: repeat(4, 1fr); align-items: end; gap: 1rem; }
  .ladder li:nth-child(1) { min-height: 12rem; } .ladder li:nth-child(2) { min-height: 15rem; }
  .ladder li:nth-child(3) { min-height: 18rem; } .ladder li:nth-child(4) { min-height: 21rem; }
}
.ladder li { counter-increment: lad; display: flex; flex-direction: column; justify-content: space-between; gap: 1rem; padding: 1.4rem;
  border-radius: var(--r-card); background: var(--navy-0); box-shadow: var(--shadow-border); }
.ladder li::before { content: counter(lad, decimal-leading-zero); font-family: var(--sc-font-display); font-size: 2.4rem; font-weight: 700; line-height: 1; letter-spacing: -0.04em; color: var(--cobalt-500); }
.ladder li:last-child { background: var(--sun-400); }
.ladder li:last-child::before { color: var(--navy-950); }
.ladder strong { display: block; font-size: 1.1rem; letter-spacing: -0.01em; }
.ladder li span { display: block; margin-top: .35rem; color: var(--sc-ink-soft); font-size: .9375rem; line-height: 1.45; }
.ladder li:last-child span { color: var(--navy-950); opacity: .8; }
.pricecall { margin-top: clamp(1.5rem, 4vw, 2.5rem); display: grid; gap: .6rem; padding: clamp(1.25rem, 3vw, 2rem); border-radius: var(--r-card); background: var(--navy-950); color: var(--navy-0); }
@media (min-width: 760px) { .pricecall { grid-template-columns: auto 1fr; align-items: center; gap: 2rem; } }
.pricecall small { display: block; margin-bottom: .35rem; font-size: .875rem; font-weight: 500; letter-spacing: .02em; color: oklch(1 0 0 / .7); }
.pricecall b { font-family: var(--sc-font-display); font-size: clamp(2.4rem, 1.4rem + 4vw, 4.2rem); line-height: 1; letter-spacing: -0.04em; color: var(--sun-400); }
.pricecall p { max-width: 38rem; color: oklch(1 0 0 / .8); }

/* ---------- agent roster: marquee plus three feature tiles ---------- */
.roster { display: grid; gap: 1rem; margin-top: clamp(1.25rem, 3vw, 2rem); }
@media (min-width: 800px) { .roster { grid-template-columns: 1.3fr 1fr 1fr; } }
.roster > div { padding: 1.4rem; border-radius: var(--r-card); background: var(--navy-0); box-shadow: var(--shadow-border); display: grid; gap: .4rem; align-content: start; }
.roster > div:first-child { background: var(--navy-950); color: var(--navy-0); }
.roster b { font-size: 1.15rem; letter-spacing: -0.02em; font-family: var(--sc-font-display); }
.roster p { color: var(--sc-ink-soft); font-size: .9375rem; line-height: 1.5; }
.roster > div:first-child p { color: oklch(1 0 0 / .74); }

/* ---------- film strip (pan): big numbered frames travel sideways ---------- */
.film { background: var(--sun-400); }
.film .sc-stage { display: flex; align-items: center; overflow: clip; }
.film__track { overflow: clip; width: 100%; }
.film__rail { list-style: none; margin: 0; padding-inline: clamp(1.25rem, 4vw, 3rem); display: flex; align-items: stretch; gap: clamp(1rem, 2.5vw, 1.75rem); counter-reset: fr; will-change: transform; }
.film__rail li { flex: none; width: min(82vw, 460px); min-height: min(62svh, 28rem); padding: clamp(1.25rem, 3vw, 2rem); border-radius: var(--r-card);
  background: var(--navy-950); color: var(--navy-0); display: flex; flex-direction: column; justify-content: space-between; gap: 1.5rem; counter-increment: fr; }
.film__rail li::before { content: counter(fr, decimal-leading-zero); font-family: var(--sc-font-display); font-size: clamp(4rem, 3rem + 6vw, 7.5rem); font-weight: 700; letter-spacing: -0.06em; line-height: .8; color: var(--sun-400); }
.film__rail li:nth-child(odd) { background: var(--navy-0); color: var(--navy-950); }
.film__rail li:nth-child(odd)::before { color: var(--cobalt-500); }
.film__rail h3 { font-size: clamp(1.2rem, 1rem + .8vw, 1.6rem); letter-spacing: -0.02em; }
.film__rail p { margin-top: .5rem; opacity: .8; font-size: .9375rem; line-height: 1.5; }
.film__rail li.film__lead { width: min(86vw, 460px); min-height: 0; justify-content: center; background: transparent; box-shadow: none; padding-inline: 0; color: var(--navy-950); }
.film__rail li.film__lead::before { content: none; }
.film__lead h2 { font-size: clamp(1.7rem, 1.1rem + 2.2vw, 2.8rem); margin-top: .6rem; }
.film__prog { position: absolute; inset-inline: clamp(1.25rem, 4vw, 3rem); bottom: clamp(1rem, 5svh, 2.25rem); height: 4px; border-radius: 4px; background: oklch(0 0 0 / .16); overflow: hidden; }
.film__prog i { display: block; height: 100%; background: var(--navy-950); transform-origin: left; transform: scaleX(var(--sc-p, 0)); }

/* ---------- split: sticky heading beside staggered cards ---------- */
.split { display: grid; gap: clamp(1.5rem, 4vw, 3rem); }
@media (min-width: 900px) { .split { grid-template-columns: .8fr 1.2fr; align-items: start; } .split__side { position: sticky; top: 7rem; } }
.cards4 { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; }
.cards4 li { display: grid; grid-template-columns: auto 1fr; gap: .2rem 1rem; align-items: start; padding: 1.35rem 1.5rem; border-radius: var(--r-card); background: var(--navy-0); box-shadow: var(--shadow-border); }
@media (min-width: 900px) { .cards4 li:nth-child(2) { margin-inline-start: 2.5rem; } .cards4 li:nth-child(3) { margin-inline-start: 1.25rem; } .cards4 li:nth-child(4) { margin-inline-start: 3.5rem; } }
.cards4 .badge { grid-row: span 2; width: 2.5rem; height: 2.5rem; border-radius: 12px; display: grid; place-items: center; background: var(--sun-400); color: var(--navy-950); box-shadow: 0 0 0 1px var(--navy-950); }
.cards4 .badge svg { width: 1.15rem; height: 1.15rem; }
.cards4 b { font-size: 1.1rem; letter-spacing: -0.01em; }
.cards4 p { color: var(--sc-ink-soft); font-size: .9375rem; line-height: 1.5; }

/* ---------- bento tiles: unequal grid, each tile its own ground ---------- */
.bento { display: grid; gap: 1rem; margin-top: clamp(1.5rem, 4vw, 2.5rem); }
@media (min-width: 800px) {
  .bento { grid-template-columns: repeat(2, 1fr); }
  .bento > :nth-child(1) { grid-row: span 2; }
  .bento > :nth-child(4) { grid-column: 1 / -1; }
}
.tile { display: flex; flex-direction: column; justify-content: space-between; gap: 1.25rem; min-height: 11rem; padding: clamp(1.25rem, 3vw, 2rem); border-radius: var(--r-card); background: var(--navy-0); box-shadow: var(--shadow-border); }
.tile h3 { font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2.4rem); letter-spacing: -0.03em; }
.tile p { margin-top: .5rem; opacity: .8; max-width: 30rem; }
.tile__chips { display: flex; flex-wrap: wrap; gap: .4rem; }
.tile__chips span { padding: .3rem .75rem; border-radius: var(--r-pill); font-size: .8125rem; font-weight: 600; background: oklch(0 0 0 / .08); }
.tile--ink { background: var(--navy-950); color: var(--navy-0); }
.tile--ink .tile__chips span, .tile--cobalt .tile__chips span { background: oklch(1 0 0 / .16); }
.tile--sun { background: var(--sun-400); }
.tile--cobalt { background: var(--cobalt-500); color: #fff; }
@media (min-width: 800px) { .bento > :nth-child(1) { min-height: 22rem; } }

/* ---------- receipt: a torn ticket for the pricing steps ---------- */
.receipt { position: relative; max-width: 38rem; margin: clamp(1.75rem, 4vw, 2.75rem) auto 1.5rem; padding: 1.75rem 1.5rem 2.25rem; border-radius: 12px 12px 0 0; background: var(--navy-0); box-shadow: var(--shadow-float);
  font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; }
.receipt::after { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: 12px; background: conic-gradient(from -45deg at bottom, #0000, var(--navy-0) 1deg 89deg, #0000 90deg) 50% / 18px 100%; filter: drop-shadow(0 6px 5px oklch(0 0 0 / .08)); }
.receipt h3 { font-family: var(--sc-font-display); font-size: 1.1rem; letter-spacing: .04em; text-transform: uppercase; padding-bottom: .9rem; border-bottom: 2px dashed var(--line-strong, #cfd5e2); }
.receipt__row { display: grid; grid-template-columns: 1fr auto; gap: 1rem; padding: .95rem 0; border-bottom: 1px dashed var(--line-strong, #cfd5e2); font-size: .875rem; line-height: 1.45; }
.receipt__row span { color: var(--sc-ink-soft); display: block; margin-top: .15rem; }
.receipt__row i { font-style: normal; font-weight: 600; text-align: end; white-space: nowrap; color: var(--cobalt-500); }
.receipt__total { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .5rem 1rem; padding-top: 1.1rem; }
.receipt__total small { font-size: .8125rem; letter-spacing: .06em; text-transform: uppercase; }
.receipt__total b { font-family: var(--sc-font-display); font-size: clamp(1.8rem, 1.3rem + 2vw, 2.6rem); letter-spacing: -0.03em; }
.receipt__note { margin-top: .75rem; font-size: .8125rem; line-height: 1.5; color: var(--sc-ink-soft); }

/* ---------- pan polish: taller frames, a progress rail, less dead air ---------- */
.how-pan__rail li { min-height: min(60svh, 28rem); }
.how-pan__lead { min-height: 0 !important; }
.how-pan__prog { position: absolute; inset-inline: clamp(1.25rem, 4vw, 3rem); bottom: clamp(1rem, 5svh, 2.25rem); height: 4px; border-radius: 4px; background: var(--line, #e3e7f0); overflow: hidden; }
.how-pan__prog i { display: block; height: 100%; background: var(--cobalt-500); transform-origin: left; transform: scaleX(var(--sc-p, 0)); }

/* mobile containment: grid tracks must be allowed to shrink */
.log__grid, .split, .roster, .pricecall { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 900px) { .log__grid { grid-template-columns: .85fr 1.15fr; } .split { grid-template-columns: .8fr 1.2fr; } }
@media (min-width: 800px) { .roster { grid-template-columns: 1.3fr 1fr 1fr; } }
@media (min-width: 760px) { .pricecall { grid-template-columns: auto 1fr; } }
.log__grid > *, .term, .term__body, .term__line { min-width: 0; }
.term__line, .term__line span, .term__line small { overflow-wrap: anywhere; }

/* ---- Marketing: sticky deliverable stack ---- */
.dstack { display: grid; margin-top: clamp(1.5rem, 4vw, 2.5rem); }
.dstack__card { position: sticky; top: calc(5.25rem + var(--i, 0) * .85rem); display: flex; flex-direction: column; justify-content: space-between; gap: 2rem;
  min-height: min(24rem, 68svh); margin-bottom: 1.5rem; padding: clamp(1.5rem, 4vw, 2.75rem); border-radius: var(--r-card);
  background: var(--navy-950); color: #fff; box-shadow: var(--shadow-float); }
.dstack__card--cobalt { background: var(--cobalt-600); }
.dstack__card--sun { background: var(--sun-400); color: var(--navy-950); }
.dstack__card--light { background: var(--navy-0); color: var(--navy-950); box-shadow: var(--shadow-border), var(--shadow-float); }
.dstack__top { display: flex; justify-content: space-between; gap: 1rem; font-size: .8125rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; opacity: .8; }
.dstack__card h3 { font-family: var(--sc-font-display); font-size: clamp(1.6rem, 4.6vw, 2.75rem); line-height: 1.05; letter-spacing: -.02em; max-width: 18ch; text-wrap: balance; }
.dstack__card p { max-width: 38ch; opacity: .85; margin-top: .75rem; }
.dstack__tags { display: flex; flex-wrap: wrap; gap: .5rem; }
.dstack__tags span { padding: .3rem .75rem; border-radius: var(--r-pill); font-size: .8125rem; font-weight: 600; background: color-mix(in oklab, currentColor 14%, transparent); }

/* ---- Marketing: oversized discipline wall ---- */
.mq--xl { padding-block: clamp(2rem, 5vw, 3.5rem); background: var(--navy-950); gap: clamp(.5rem, 1.5vw, 1rem); }
.mq--xl .mq__row { gap: clamp(1.25rem, 3vw, 2.5rem); }
.mq--xl .mq__row > span { background: none; box-shadow: none; padding: 0; gap: clamp(1.25rem, 3vw, 2.5rem); font-family: var(--sc-font-display); font-weight: 800; font-size: clamp(2.5rem, 7vw, 5rem); line-height: 1.05; letter-spacing: -.03em; color: var(--sun-400); -webkit-text-stroke: 0; }
.mq--xl .mq__row > span::before { display: none; }
.mq--xl .mq__row > span::after { content: ""; width: .35em; height: .35em; border-radius: 50%; background: var(--cobalt-500); flex: none; }
.mq--xl .mq__row > span:nth-child(2n)::after { background: #fff; }

/* ---- Marketing: versus (pin) ---- */
.versus { background: var(--navy-0); }
.versus__wrap { width: 100%; max-width: 64rem; margin-inline: auto; padding-inline: clamp(1.25rem, 4vw, 3rem); }
.versus__head { margin-bottom: clamp(1.25rem, 3vw, 2rem); }
.versus__head h2 { margin-top: .5rem; }
.versus__labels, .versus__row { display: grid; grid-template-columns: minmax(0, 1fr); gap: .5rem; }
.versus__labels { display: none; font-weight: 700; font-size: .8125rem; letter-spacing: .06em; text-transform: uppercase; color: var(--sc-ink-soft); padding-bottom: .5rem; }
.versus__rows { display: grid; gap: .75rem; list-style: none; padding: 0; margin: 0; }
.versus__row > span { padding: .9rem 1.1rem; border-radius: calc(var(--r-card) * .6); }
.versus__old { background: var(--bg-subtle); color: var(--sc-ink-soft); text-decoration: line-through; text-decoration-color: color-mix(in oklab, var(--sc-ink-soft), transparent 60%); }
.versus__new { background: var(--sun-400); color: var(--navy-950); font-weight: 600; }
@media (min-width: 720px) { .versus__labels, .versus__row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: .75rem; } .versus__labels { display: grid; } }

/* ---- Marketing: discipline cards ---- */
.discs { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; margin-top: clamp(1.5rem, 4vw, 2.5rem); }
@media (min-width: 700px) { .discs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1040px) { .discs { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.disc { display: flex; flex-direction: column; gap: .75rem; padding: clamp(1.25rem, 3vw, 1.75rem); border-radius: var(--r-card); background: var(--navy-0); box-shadow: var(--shadow-border); }
.disc__n { display: flex; align-items: center; justify-content: space-between; font-weight: 700; color: var(--sc-ink-soft); }
.disc__n i { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: 50%; background: var(--sun-400); color: var(--navy-950); }
.disc h3 { font-size: 1.25rem; letter-spacing: -.01em; }
.disc > p { color: var(--sc-ink-soft); }
@media (hover: hover) and (pointer: fine) { .disc { transition: translate 200ms var(--ease-out), box-shadow 200ms var(--ease-out); } .disc:hover { translate: 0 -4px; box-shadow: var(--shadow-border), var(--shadow-float); } }

/* vertical centring inside pinned stages (avoids a dead lower half) */
.versus .sc-stage, .film .sc-stage, .manifesto .sc-stage, .follow .sc-stage, .log .sc-stage { display: flex; flex-direction: column; justify-content: center; }
.film .sc-stage { gap: 1.5rem; }

/* ---------- price split: head left, receipt right, so neither side floats alone ---------- */
.price-split { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2rem; }
.price-split .receipt { margin-inline: auto; width: 100%; }
.price-split__cta { margin-top: 1.5rem; }
@media (min-width: 900px) {
  .price-split { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); align-items: center; gap: clamp(2.5rem, 6vw, 5rem); }
  .price-split .receipt { margin: 0; max-width: none; }
}


/* =====================================================================
   cx: capability console (AI). 13 rows on the left, one lit panel on the right; scroll walks the list.
   ===================================================================== */
.cx .sc-stage { display: flex; align-items: center; padding: 5.25rem clamp(1.25rem, 4vw, 3rem) 1.75rem; }
.cx__wrap { width: 100%; max-width: 76rem; margin-inline: auto; display: grid; gap: clamp(1rem, 3svh, 1.75rem); }
.cx__head { display: grid; gap: .6rem; max-width: 44rem; }
.cx__head h2 { font-size: clamp(1.9rem, 1.2rem + 2.6vw, 3.2rem); }
.cx__head p { color: var(--sc-ink-soft); font-size: 1.0625rem; max-width: 34rem; }
.cx__body { display: grid; gap: 1.25rem; }
.cx__list { display: none; list-style: none; margin: 0; padding: 0; }
.cx__panels { display: grid; }
.cx__panel {
  --x: calc((clamp(0.03, var(--sc-p, 0), 0.97) - 0.03) / 0.94 * (var(--n) - 1));
  --local: clamp(0, calc(1.5 - abs(var(--x) - var(--i)) * 2), 1);
  grid-area: 1 / 1; position: relative; overflow: hidden; isolation: isolate;
  display: flex; flex-direction: column; justify-content: space-between; gap: 1.5rem;
  min-height: clamp(16rem, 46svh, 25rem); padding: clamp(1.4rem, 3.4vw, 2.75rem);
  border-radius: var(--r-card); background: var(--cobalt-500); color: #fff;
  opacity: var(--local); transform: translateY(calc((1 - var(--local)) * 26px)) scale(calc(.97 + var(--local) * .03));
  filter: blur(calc((1 - var(--local)) * 5px)); pointer-events: none;
}
.cx__panel::before { content: ""; position: absolute; z-index: -1; inset-inline-end: -5rem; top: -5rem; width: 17rem; height: 17rem; border-radius: 50%; background: var(--sun-400); opacity: .22; }
.cx__panel:nth-child(3n+2)::before { border-radius: 24px; rotate: 18deg; }
.cx__panel:nth-child(3n)::before { border-radius: 0; clip-path: polygon(50% 0, 100% 100%, 0 100%); }
.cx__top { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.cx__top i { width: 3.5rem; height: 3.5rem; border-radius: 50%; display: grid; place-items: center; background: var(--sun-400); color: var(--navy-950); }
.cx__top .ico { width: 1.5rem; height: 1.5rem; }
.cx__top small { font: 800 clamp(3.5rem, 2.2rem + 5vw, 6.5rem)/.85 var(--sc-font-display); letter-spacing: -.05em; font-variant-numeric: tabular-nums lining-nums; font-feature-settings: "tnum", "lnum"; color: oklch(1 0 0 / .94); opacity: 1; }
.cx__panel h3 { font-family: var(--sc-font-display); font-size: clamp(1.7rem, 1.1rem + 2.4vw, 3rem); line-height: 1.05; letter-spacing: -.03em; max-width: 14ch; }
.cx__panel p { margin-top: .85rem; max-width: 36ch; font-size: clamp(1rem, .95rem + .25vw, 1.125rem); line-height: 1.5; color: oklch(1 0 0 / .9); }
.cx__foot { font-size: .9375rem; color: var(--sc-ink-soft); max-width: 48rem; }
.cx__foot b { color: var(--sc-ink); }
@media (min-width: 900px) {
  .cx__body { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: center; gap: clamp(2rem, 5vw, 4.5rem); }
  .cx__list { display: grid; gap: .1rem; }
  .cx__list li {
    --x: calc((clamp(0.03, var(--sc-p, 0), 0.97) - 0.03) / 0.94 * (var(--n) - 1));
    --local: clamp(0, calc(1.5 - abs(var(--x) - var(--i)) * 2), 1);
    --on: clamp(0, calc((var(--local) - .4) * 4), 1);
    display: flex; align-items: baseline; gap: 1rem; padding: .28rem 0 .28rem 1rem;
    border-inline-start: 3px solid color-mix(in oklab, var(--cobalt-500) calc(var(--on) * 100%), var(--line, #e3e7f0));
    font: 700 clamp(1rem, .85rem + .6vw, 1.45rem)/1.2 var(--sc-font-display); letter-spacing: -.02em;
    color: color-mix(in oklab, var(--navy-950) calc(45% + var(--on) * 55%), transparent);
    translate: calc(var(--on) * .5rem) 0;
  }
  .cx__list b { font-size: .8em; font-weight: 800; letter-spacing: -.02em; font-variant-numeric: tabular-nums; color: color-mix(in oklab, var(--cobalt-500) calc(40% + var(--on) * 60%), transparent); min-width: 1.6rem; }
}
@media (prefers-reduced-motion: reduce) {
  .cx__panels { grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); gap: 1rem; }
  .cx__panel { grid-area: auto; opacity: 1; transform: none; filter: none; min-height: 0; }
  .cx__list { display: none !important; }
}

/* =====================================================================
   mos: service mosaic (Marketing). 13 tiles fly in from scattered spots and lock into one grid.
   ===================================================================== */
.mos .sc-stage { display: flex; align-items: center; padding: 5.25rem clamp(1rem, 4vw, 3rem) 1.5rem; }
.mos__wrap { width: 100%; max-width: 76rem; margin-inline: auto; display: grid; gap: clamp(.9rem, 2.4svh, 1.5rem); }
.mos__head { display: grid; gap: .6rem; position: relative; z-index: 2; }
.mos__head h2 { font-size: clamp(1.7rem, 1.1rem + 2.4vw, 3rem); max-width: 20ch; margin-top: .4rem; }
.mos__head p { color: var(--sc-ink-soft); font-size: 1.0625rem; max-width: 30rem; }
@media (min-width: 900px) { .mos__head { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); align-items: end; gap: 3rem; } }
.mos__grid { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: minmax(0, 1fr); height: clamp(26rem, calc(100svh - 17.5rem), 44rem); }
.mos__t:last-child { grid-column: 1 / -1; }
@media (min-width: 640px) { .mos__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; } .mos__t:last-child { grid-column: auto; } .mos__t--wide { grid-column: span 2; } }
@media (min-width: 1000px) { .mos__grid { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
.mos__t {
  --k: clamp(0, calc((var(--sc-p, 0) - var(--d)) * 3.2), 1);
  --e: calc(var(--k) * var(--k) * (3 - 2 * var(--k)));
  min-height: 0;
  transform: translate(calc((1 - var(--e)) * var(--dx)), calc((1 - var(--e)) * var(--dy))) rotate(calc((1 - var(--e)) * var(--dr))) scale(calc(.72 + .28 * var(--e)));
  opacity: calc(.1 + .9 * var(--e)); will-change: transform;
}
.mos__in { height: 100%; display: flex; flex-direction: column; justify-content: space-between; gap: .5rem; padding: clamp(.7rem, 1.3vw, 1.15rem); border-radius: var(--r-card); overflow: hidden;
  background: var(--navy-0); color: var(--navy-950); box-shadow: var(--shadow-border);
  transition: translate 220ms var(--ease-out), box-shadow 220ms var(--ease-out), background-color 220ms var(--ease-out); }
.mos__in i { width: 2.1rem; height: 2.1rem; border-radius: 10px; display: grid; place-items: center; flex: none; background: var(--cobalt-200); color: var(--cobalt-600); transition: transform 240ms var(--ease-out), background-color 220ms var(--ease-out); }
.mos__in .ico { width: 1.1rem; height: 1.1rem; }
.mos__in h3 { font: 700 clamp(.875rem, .8rem + .3vw, 1.0625rem)/1.2 var(--sc-font-display); letter-spacing: -.01em; }
.mos__in p { display: none; margin-top: .3rem; font-size: .78rem; line-height: 1.38; color: inherit; opacity: .78; }
@media (min-width: 640px) { .mos__in p { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; } }
.mos__t--wide .mos__in h3 { font-size: clamp(1.1rem, .9rem + .7vw, 1.5rem); }
.mos__t--1 .mos__in { background: var(--navy-950); color: #fff; box-shadow: none; }
.mos__t--1 .mos__in i { background: var(--sun-400); color: var(--navy-950); }
.mos__t--2 .mos__in { background: var(--cobalt-500); color: #fff; box-shadow: none; }
.mos__t--2 .mos__in i { background: var(--sun-400); color: var(--navy-950); }
.mos__t--3 .mos__in { background: var(--sun-400); color: var(--navy-950); box-shadow: none; }
.mos__t--3 .mos__in i { background: var(--navy-950); color: var(--sun-400); }
.mos__t--4 .mos__in { background: var(--navy-50); }
@media (hover: hover) and (pointer: fine) {
  .mos__in:hover { translate: 0 -5px; box-shadow: var(--shadow-float); }
  .mos__in:hover i { transform: rotate(-8deg) scale(1.1); }
  .mos__t--0 .mos__in:hover, .mos__t--4 .mos__in:hover { background: var(--sun-400); }
  .mos__t--0 .mos__in:hover i, .mos__t--4 .mos__in:hover i { background: var(--navy-950); color: var(--sun-400); }
}
@media (prefers-reduced-motion: reduce) { .mos__t { transform: none; opacity: 1; } }

/* =====================================================================
   trail: the playbook as a path. Yellow ground, blue progress line, one card per step.
   ===================================================================== */
.trail { background: var(--sun-400); color: var(--navy-950); }
.trail .sc-stage { display: flex; align-items: center; padding: 5.25rem clamp(1.25rem, 4vw, 3rem) 2rem; }
.trail__wrap { width: 100%; max-width: 76rem; margin-inline: auto; display: grid; gap: clamp(1.75rem, 7svh, 4.5rem); }
.trail__head { display: grid; gap: .6rem; max-width: 40rem; }
.trail .eyebrow { color: var(--navy-950); }
.trail h2 { font-size: clamp(2rem, 1.2rem + 3vw, 3.6rem); max-width: 16ch; color: var(--navy-950); }
.trail__head p { max-width: 32rem; font-size: 1.0625rem; color: oklch(.2 .04 262 / .86); }
.trail__steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; }
.trail__steps > li { position: relative; padding-inline-start: 4.25rem; --seg: clamp(0, calc((var(--sc-p, 0) - var(--s, 0)) * 5), 1); }
.trail__node { position: absolute; inset-inline-start: 0; top: 0; width: 3rem; height: 3rem; border-radius: 50%; display: grid; place-items: center; background: var(--cobalt-500); color: #fff; font: 700 .9375rem/1 var(--sc-font-display); font-variant-numeric: tabular-nums; box-shadow: 0 0 0 4px var(--sun-400); z-index: 1; }
.trail__steps > li::before, .trail__steps > li::after { content: ""; position: absolute; inset-inline-start: 1.5rem; top: 3rem; width: 4px; margin-inline-start: -2px; height: calc(100% - 3rem + 1rem); border-radius: 4px; }
.trail__steps > li::before { background: oklch(.2 .04 262 / .22); }
.trail__steps > li::after { background: var(--cobalt-500); transform-origin: top; transform: scaleY(var(--seg)); }
.trail__steps > li:last-child::before, .trail__steps > li:last-child::after { display: none; }
.trail__card { padding: clamp(1rem, 1.6vw, 1.5rem) clamp(1.1rem, 1.8vw, 1.6rem); border-radius: var(--r-card); background: var(--navy-0); box-shadow: var(--shadow-border); }
.trail__card h3 { font: 700 clamp(1.1875rem, 1rem + .6vw, 1.5rem)/1.2 var(--sc-font-display); letter-spacing: -.02em; }
.trail__card p { margin-top: .4rem; font-size: clamp(.9375rem, .9rem + .15vw, 1.0625rem); line-height: 1.45; color: var(--sc-ink-soft); }
.trail__done .trail__node { background: var(--navy-950); color: var(--sun-400); }
.trail__done .trail__card { background: var(--navy-950); color: #fff; }
.trail__done .trail__card h3 { color: #fff; }
@media (min-width: 900px) {
  .trail__steps { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.75rem); align-items: stretch; }
  .trail__steps > li { padding-inline-start: 0; padding-top: 4.25rem; display: grid; }
  .trail__card { height: 100%; min-height: 11rem; }
  .trail__steps > li::before, .trail__steps > li::after { inset-inline-start: 3rem; top: 1.5rem; margin: -2px 0 0; width: auto; height: 4px; inset-inline-end: calc(-1 * clamp(1rem, 2vw, 1.75rem)); transform-origin: left; }
  .trail__steps > li::after { transform: scaleX(var(--seg)); }
  .trail__done .trail__card { display: grid; align-content: center; }
}
@media (prefers-reduced-motion: reduce) { .trail__steps > li { --seg: 1; } }

/* mobile: leave room for the fixed action bar and fit each pinned stage inside one screen */
@media (max-width: 639px) {
  .cx .sc-stage, .mos .sc-stage, .trail .sc-stage { padding-top: 4.75rem; padding-bottom: 5.25rem; }
  .cx__panel { min-height: 15rem; }
  .cx__foot { display: none; }
  .mos__head p { display: none; }
  .mos__head h2 { font-size: clamp(1.5rem, 1.1rem + 2vw, 1.9rem); }
  .mos__wrap { gap: .85rem; }
  .mos__grid { height: auto; min-height: 0; grid-auto-rows: auto; gap: .5rem; max-height: calc(100svh - 16.5rem); grid-template-rows: repeat(5, minmax(0, 1fr)); }
  .mos__in { flex-direction: row; align-items: center; justify-content: flex-start; padding: .5rem .65rem; gap: .55rem; min-height: 3.1rem; }
  .mos__in h3, .mos__t--wide .mos__in h3 { font-size: .8125rem; line-height: 1.15; }
  .mos__in i { width: 1.6rem; height: 1.6rem; border-radius: 8px; }
  .mos__in .ico { width: .95rem; height: .95rem; }
  .mos__in h3 { font-size: .8125rem; }
  .trail__wrap { gap: 1rem; }
  .trail__head p { display: none; }
  .trail h2 { font-size: clamp(1.75rem, 1.2rem + 2.4vw, 2.2rem); }
  .trail__steps { gap: .5rem; }
  .trail__steps > li { padding-inline-start: 3.5rem; }
  .trail__node { width: 2.5rem; height: 2.5rem; font-size: .8125rem; }
  .trail__steps > li::before, .trail__steps > li::after { inset-inline-start: 1.25rem; top: 2.5rem; height: calc(100% - 2.5rem + .5rem); }
  .trail__card { padding: .6rem .85rem; }
  .trail__card h3 { font-size: 1.0625rem; }
  .trail__card p { font-size: .8125rem; margin-top: .15rem; }
}

/* tablet (640-999): compact tiles so the whole mosaic fits the pinned screen */
@media (min-width: 640px) and (max-width: 999px) {
  .mos .sc-stage { padding-top: 5rem; padding-bottom: 5.5rem; }
  .mos__head p { display: none; }
  .mos__grid { height: auto; max-height: calc(100svh - 15rem); min-height: 22rem; grid-template-rows: repeat(5, minmax(0, 1fr)); gap: .6rem; }
  .mos__in p { display: none; }
  .mos__in { flex-direction: row; align-items: center; justify-content: flex-start; gap: .7rem; padding: .6rem .85rem; min-height: 3.4rem; }
  .mos__in h3, .mos__t--wide .mos__in h3 { font-size: .9375rem; line-height: 1.15; }
}

@media (min-width: 640px) and (max-width: 899px) {
  .trail .sc-stage { padding-top: 4.75rem; padding-bottom: 5.5rem; }
  .trail__wrap { gap: 1rem; }
  .trail__head p { display: none; }
  .trail h2 { font-size: clamp(1.75rem, 1.2rem + 2.4vw, 2.4rem); max-width: 24ch; }
  .trail__steps { gap: .5rem; }
  .trail__steps > li { padding-inline-start: 3.5rem; }
  .trail__node { width: 2.5rem; height: 2.5rem; font-size: .8125rem; }
  .trail__steps > li::before, .trail__steps > li::after { inset-inline-start: 1.25rem; top: 2.5rem; height: calc(100% - 2.5rem + .5rem); }
  .trail__card { padding: .6rem 1rem; }
  .trail__card h3 { font-size: 1.0625rem; }
  .trail__card p { font-size: .875rem; margin-top: .15rem; }
}
