/* ==========================================================================
   The proof beats + the dollar-question rotator (replaced the framed
   interrogation card, Aaron 2026-07-24). Plain white ground, the site's
   pinned-beat vocabulary: sticky 100vh stages, wrapper-only opacity;
   without JS / reduced motion everything flows as stacked text.
   ========================================================================== */
body.rep-asks .rep-say{position:relative;min-height:300vh;}
body.rep-asks .rep-say__sticky{position:sticky;top:0;height:100vh;overflow:hidden;}
body.rep-asks .rep-say__phase{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;opacity:0;pointer-events:none;}
body.rep-asks .rep-say__phase > .wrap{width:100%;}
body:not(.rep-asks) .rep-say__phase{padding:var(--space-lg) 0;}
.rep-say__in{text-align:center;}
.rep-say__line{font-family:var(--font-display);font-weight:700;font-size:clamp(38px,5.6vw,84px);line-height:1.08;letter-spacing:-0.035em;max-width:24ch;margin:0 auto;}

body.rep-asks .rep-rot{position:relative;min-height:420vh;}
body.rep-asks .rep-rot__sticky{position:sticky;top:0;height:100vh;display:flex;align-items:center;}
body:not(.rep-asks) .rep-rot__sticky{padding:var(--space-lg) 0;}
.rep-rot__in{width:100%;text-align:center;}
.rep-rot__lead{font-family:var(--font-display);font-weight:700;font-size:clamp(40px,6vw,92px);line-height:1.05;letter-spacing:-0.035em;margin:0;}
/* the tails match the lead exactly - same size, weight, and slate-900
   (Aaron: no smaller, no muting) */
.rep-rot__reel{position:relative;margin-top:0.3em;height:2.6em;font-size:clamp(40px,6vw,92px);}
.rep-rot__tail{
  font-family:var(--font-display);font-weight:700;font-size:1em;line-height:1.05;
  letter-spacing:-0.035em;max-width:22ch;margin:0 auto;
  color:var(--slate-900);
}
body.rep-asks .rep-rot__tail{position:absolute;left:0;right:0;top:0;opacity:0;will-change:opacity,transform;}
body:not(.rep-asks) .rep-rot__tail{margin-bottom:14px;}

/* the CFO beats: same stage vocabulary; the $$$ is steel foil inline in
   the display line; the body settles under the held second beat */
body.rep-asks .rep-cfo{position:relative;min-height:320vh;}
body.rep-asks .rep-cfo__sticky{position:sticky;top:0;height:100vh;overflow:hidden;}
body.rep-asks .rep-cfo__phase{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;opacity:0;pointer-events:none;}
body.rep-asks .rep-cfo__phase > .wrap{width:100%;}
body:not(.rep-asks) .rep-cfo__phase{padding:var(--space-lg) 0;}
/* the reveal: body copy left, the Financial-Risk-Retired card right;
   the card's gradient glyphs ($ and the figure) carry the holo foil via
   an exact mask of those two paths (mask-frr-figure.svg) */
.rep-cfo__reveal{margin-top:var(--space-md);}
body.rep-asks .rep-cfo__reveal{opacity:0;will-change:opacity;}
.rep-cfo__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,560px);gap:clamp(24px,4vw,64px);align-items:center;max-width:1080px;margin:0 auto;text-align:left;}
.rep-cfo__sub{font-size:clamp(16px,1.6vw,19px);line-height:1.6;max-width:46ch;margin:0;}
.rep-cfo__card{position:relative;width:100%;aspect-ratio:560/344;}
.rep-cfo__card img{display:block;width:100%;height:100%;}
.hl.rep-cfo__cardfoil,
.hl.rep-cfo__cardfoil.hl-gl{position:absolute;inset:0;width:100%;height:100%;display:block;padding:0;border-radius:0;
  -webkit-mask:url('../../assets/holo/svg/mask-frr-figure.svg') center/contain no-repeat;
  mask:url('../../assets/holo/svg/mask-frr-figure.svg') center/contain no-repeat;}
@media(max-width:880px){.rep-cfo__grid{grid-template-columns:1fr;}}

/* ==========================================================================
   The capabilities story stack (replaced the seal-stripe list, Aaron
   2026-07-24): the surface page's sfstory treatment on the light ground -
   six sticky cards climbing over each other, copy left, a product-screen
   well right (Aaron supplies the shots), the four site patterns rotating
   down the card edges at the standard seal width.
   ========================================================================== */
.rep-story__list{
  max-width:1200px;margin:var(--space-md) auto 0;padding:0 24px;
  display:flex;flex-direction:column;gap:120px;
}
.rep-story__list::after{content:"";height:30vh;}
.rep-story__card{
  position:sticky;
  display:flex;flex-direction:column;justify-content:center;
  min-height:clamp(440px,62vh,620px);
  border-radius:32px;overflow:hidden;isolation:isolate;
  padding:48px clamp(24px,4vw,56px);
  padding-right:calc(clamp(24px,4vw,56px) + clamp(20px,2.5vw,36px));   /* clear the stripe */
}
/* the section ground is itself slate-100, so any slate-100 card would
   vanish into it the same way the slate-50 ones did: the stack
   alternates WHITE and slate-200 (one step darker than the ground) so
   every card reads as a card (Aaron's fix, ground-adjusted) */
.rep-story__card:nth-child(odd){background:#fff;}
.rep-story__card:nth-child(even){background:var(--slate-200,#E2E8F0);}
.rep-story__card:nth-child(1){top:96px;z-index:4;}
.rep-story__card:nth-child(2){top:120px;z-index:5;}
.rep-story__card:nth-child(3){top:144px;z-index:6;}
.rep-story__card:nth-child(4){top:168px;z-index:7;}
.rep-story__card:nth-child(5){top:192px;z-index:8;}
.rep-story__card:nth-child(6){top:216px;z-index:9;}
.hl.hl--seal.rep-story__stripe,
.hl.hl--seal.rep-story__stripe.hl-gl{left:auto;right:0;}
.rep-story__grid{
  display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);
  gap:clamp(24px,3vw,48px);align-items:center;width:100%;
}
.rep-story__body h3{
  font-family:var(--font-display);font-weight:700;
  font-size:clamp(24px,2.6vw,36px);line-height:1.14;letter-spacing:-0.02em;margin:0;
}
.rep-story__body p{font-size:clamp(15px,1.4vw,18px);line-height:1.6;margin:16px 0 0;max-width:48ch;}
.rep-story__shot{
  aspect-ratio:16/10;width:100%;
  background:var(--slate-950);
  border-radius:16px;
  display:flex;align-items:center;justify-content:center;
}
.rep-story__shot span{font-size:13px;color:color-mix(in srgb,#fff 42%,transparent);}
@media(max-width:880px){
  .rep-story__grid{grid-template-columns:1fr;}
  .rep-story__card{min-height:0;padding:36px 24px;padding-right:calc(24px + 20px);}
}

/* ==========================================================================
   5 · The category contrast, white (reworked 2026-07-24). Hairline-ruled
   pairs; slate-900 only; the payoff card carries the guilloche stripe.
   ========================================================================== */
.rep-price2{padding:var(--space-2xl) 0;isolation:isolate;}
.rep-price2__row{
  display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);
  gap:clamp(24px,4vw,72px);align-items:center;
  padding:clamp(28px,4vh,44px) 0;border-top:1px solid var(--slate-200);
}
.rep-price2__line{font-family:var(--font-display);font-weight:700;font-size:clamp(30px,3.6vw,54px);line-height:1.05;letter-spacing:-0.03em;margin:0;color:var(--slate-900);}
.rep-price2__p{font-size:clamp(16px,1.5vw,19px);line-height:1.6;margin:0;color:var(--slate-900);max-width:52ch;}
.rep-price2__row--us{
  position:relative;overflow:hidden;isolation:isolate;
  background:var(--slate-50);border-top:0;border-radius:var(--radius-card);
  margin-top:var(--space-sm);
  padding:clamp(32px,5vh,56px) clamp(24px,3vw,48px);
  padding-left:calc(clamp(20px,2.5vw,36px) + clamp(24px,3vw,48px));   /* clear the stripe */
}
.rep-price2__row--us .rep-price2__line{font-size:clamp(40px,5vw,76px);}
@media(max-width:880px){
  .rep-price2__row{grid-template-columns:1fr;gap:12px;}
}

/* ==========================================================================
   7 · Closer - the sffinal panel recipe verbatim (values from surface.css)
   with measured line lengths so nothing breaks weirdly.
   ========================================================================== */
.rep-final2{padding:var(--space-lg) 0 0;}
:where(.rep-final2__panel){background:var(--slate-950);color:var(--on-dark,#fff);}
.rep-final2__panel{border-radius:var(--radius-card);padding:var(--space-xl) var(--space-md);text-align:center;isolation:isolate;}
.rep-final2__h{font-family:var(--font-display);font-weight:700;font-size:clamp(36px,5vw,64px);line-height:1.05;letter-spacing:-0.02em;max-width:22ch;margin:0 auto var(--space-sm);}
.rep-final2__p{font-size:17px;line-height:1.55;max-width:52ch;margin:0 auto 14px;}
.rep-final2__cta{margin-top:var(--space-sm);}
