/* =====================================================
   R1 ReadyFirst – /launch + /launch-confirmed
   Requires: shared.css
   v3 – Live-app download page: dark hero with phone fan,
   giant state statement, typography-led pillars band,
   then the App Store / Google Play badges. One idea per band.
   ===================================================== */

/* LAYOUT – full-bleed bands; columns pad themselves */
.launch{padding:0;overflow-x:hidden}
.launch__col{max-width:680px;margin:0 auto;padding:0 var(--md)}

/* 9a HERO – deep gradient, phone fan */
.launch-hero{padding:var(--xl) var(--md) clamp(200px,24vw,330px);background:var(--g-deep);text-align:center;position:relative;overflow:hidden;color:var(--white)}
.launch-hero::before{content:'';position:absolute;top:-120px;right:-80px;width:360px;height:360px;border-radius:50%;background:rgba(var(--jade-lt-rgb),.04)}
.launch-hero::after{content:'';position:absolute;bottom:-100px;left:-60px;width:280px;height:280px;border-radius:50%;background:rgba(var(--sky-rgb),.03)}
.launch-hero__inner{max-width:820px;margin:0 auto;position:relative;z-index:1}
.launch-hero .section-eyebrow{margin-bottom:var(--sm)}
.launch-hero h1{font-size:clamp(2.125rem,5.5vw,3.25rem);font-weight:800;color:var(--white);line-height:1.08;margin-bottom:var(--md)}
.launch-hero__sub{font-family:var(--font-prose);font-size:clamp(1.0625rem,2vw,1.1875rem);line-height:1.7;color:rgba(var(--sand-rgb),.85);max-width:600px;margin:0 auto}
.launch-hero__badges{display:flex;gap:var(--sm);justify-content:center;flex-wrap:wrap;margin-top:var(--md)}
.launch-badge{padding:.75rem 1.75rem;text-align:left}
.launch-badge svg{width:26px;height:26px;flex-shrink:0}
.launch-badge__lines{display:flex;flex-direction:column;line-height:1.2}
.launch-badge__small{font-size:.6875rem;font-weight:500}
.launch-badge__store{font-size:1.0625rem;font-weight:600}
.launch-hero__note{font-family:var(--font-ui);font-size:.875rem;color:rgba(var(--sand-rgb),.7);max-width:460px;margin:var(--sm) auto 0;line-height:1.6}
.launch-hero__phones{display:flex;justify-content:center;align-items:flex-end;margin:clamp(-310px,-23vw,-185px) auto 0;padding:0 var(--md);position:relative;z-index:1}
.launch-hero__phone{width:100%;height:auto}
.launch-hero__phone--center{max-width:290px;position:relative;z-index:2}
.launch-hero__phone--side{max-width:230px;margin:0 -34px;position:relative;z-index:1;opacity:.9;transform-origin:bottom center}
/* Deck-of-cards fan: side screens lean outward from the centre Ready screen */
.launch-hero__phones .launch-hero__phone--side:first-child{transform:rotate(-5deg)}
.launch-hero__phones .launch-hero__phone--side:last-child{transform:rotate(5deg)}

/* 9b THE POINT – one giant answer */
.launch-point{padding:var(--lg) var(--md) var(--xxl);text-align:center}
.launch-point__lead{font-family:var(--font-ui);font-size:clamp(1.0625rem,2.2vw,1.25rem);font-weight:600;color:var(--char);max-width:560px;margin:0 auto var(--lg)}
.launch-point__states{display:flex;flex-direction:column;gap:.1em;margin:0 auto var(--lg)}
.launch-point__state{font-family:var(--font-display);font-weight:800;line-height:1.08;letter-spacing:-.02em}
/* Staged reveal: each state word rises in a beat after the last */
.launch-point__state.fade-in{transform:translateY(28px);transition-duration:.7s}
.launch-point__state.fade-in.visible{transform:translateY(0)}
.launch-point__states .launch-point__state:nth-child(2){transition-delay:.3s}
.launch-point__states .launch-point__state:nth-child(3){transition-delay:.6s}
/* Cascading scale: each state larger than the last, READY the biggest */
.launch-point__state--rebuilding{color:var(--terra);font-size:clamp(2rem,5.5vw,3.25rem)}
.launch-point__state--rising{color:var(--grow);font-size:clamp(2.5rem,7vw,4.25rem)}
.launch-point__state--ready{color:var(--jade);font-size:clamp(3rem,9vw,5.5rem);text-transform:uppercase}
.launch-point__note{font-family:var(--font-quote);font-style:italic;font-size:clamp(1.0625rem,2vw,1.25rem);line-height:1.6;color:var(--char);max-width:520px;margin:0 auto}

/* 9c PILLARS – dark band, typography-led */
/* Rounded floating panel – sand shows at the corners so the dark band
   arrives softly instead of as a hard full-width break */
.launch-pillars{background:var(--g-forest);color:var(--white);padding:var(--xxl) var(--md);text-align:center;border-radius:clamp(28px,5vw,64px);margin:0 clamp(12px,3vw,40px)}
.launch-pillars__inner{max-width:1040px;margin:0 auto}
.launch-pillars h2{color:var(--white);margin-bottom:var(--xl)}
.launch-pillars__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--lg)}
.launch-pillars__char{width:clamp(150px,18vw,220px);height:auto;display:block;margin:0 auto var(--sm);animation:launchCharFloat 3.6s ease-in-out infinite}
.launch-pillars__grid>div:nth-child(2) .launch-pillars__char{animation-delay:.6s}
.launch-pillars__grid>div:nth-child(3) .launch-pillars__char{animation-delay:1.2s}
@keyframes launchCharFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
/* Staggered pop-in: each pillar arrives a beat after the last */
.launch-pillars__grid>.fade-in{transform:translateY(24px) scale(.92)}
.launch-pillars__grid>.fade-in.visible{transform:translateY(0) scale(1)}
.launch-pillars__grid>.fade-in:nth-child(2){transition-delay:.15s}
.launch-pillars__grid>.fade-in:nth-child(3){transition-delay:.3s}
@media(prefers-reduced-motion:reduce){.launch-pillars__char{animation:none}}
.launch-pillars__word{font-family:var(--font-display);font-size:clamp(2.25rem,5vw,3.5rem);font-weight:800;color:var(--white);line-height:1.1;margin-bottom:var(--sm)}
.launch-pillars__grid p{font-family:var(--font-ui);font-size:.9375rem;line-height:1.65;color:rgba(var(--sand-rgb),.8);max-width:300px;margin:0 auto}

/* 9d PRIVACY – one quiet line, straight on the sand (no band, no break) */
.launch-privacy{padding:var(--xl) var(--md);text-align:center}
.launch-privacy p{font-family:var(--font-quote);font-style:italic;font-size:clamp(1.125rem,2.4vw,1.5rem);line-height:1.6;color:var(--jade-dk);max-width:680px;margin:0 auto var(--sm)}
.launch-privacy p.launch-privacy__link{font-family:var(--font-ui);font-style:normal;font-size:.9375rem;margin-bottom:0}

/* 9e PAYMENT (primary, prominent) */
.launch-pay{max-width:min(1040px,100%);margin:0 auto;padding:var(--xl) var(--md);box-sizing:border-box;width:100%}
.launch-pay__headline{text-align:center;margin-bottom:var(--sm)}
.launch-pay__intro{font-family:var(--font-prose);font-size:1.0625rem;line-height:1.7;color:var(--char);text-align:center;max-width:600px;margin:0 auto var(--lg)}
.launch-tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--md);align-items:stretch}
.launch-tier{position:relative;background:var(--white);border:1px solid var(--sand-dk);border-radius:14px;box-shadow:var(--sh);padding:calc(var(--md) + .25rem);min-width:0;width:100%;box-sizing:border-box}
.launch-tier--athlete{border:2px solid var(--terra)}
.launch-tier--family{border:2px solid var(--jade)}
.launch-tier--club{border:2px solid var(--sky-lt)}
.launch-tier__badge{position:absolute;top:-.8rem;left:50%;transform:translateX(-50%);color:var(--white);font-family:var(--font-ui);font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:.3rem .85rem;border-radius:999px;white-space:nowrap}
.launch-tier--athlete .launch-tier__badge{background:var(--terra)}
.launch-tier--family .launch-tier__badge{background:var(--jade)}
.launch-tier--club .launch-tier__badge{background:var(--sky)}
.launch-tier__label{font-family:var(--font-ui);font-size:1rem;font-weight:600;color:var(--char)}
.launch-tier__rule{border:none;border-top:1px solid var(--sand-dk);margin:.75rem 0}
.launch-tier__price{font-family:var(--font-display);font-size:2.75rem;font-weight:800;color:var(--jade-dk);line-height:1}
.launch-tier__price span{display:block;font-family:var(--font-ui);font-size:1rem;font-weight:600;color:var(--jade-dk)}
.launch-tier__compare{font-family:var(--font-ui);font-size:.875rem;color:var(--wgray);margin-top:.5rem}
.launch-tier__soldout{font-family:var(--font-display);font-size:1.375rem;font-weight:700;color:var(--char);margin-top:.5rem}
.launch-tier__body{font-family:var(--font-ui);font-size:.9375rem;line-height:1.6;color:var(--char);margin:var(--sm) 0 var(--md)}
.launch-tier__cta{width:100%;margin-top:var(--xs)}
.launch-tier__cap{font-family:var(--font-ui);font-size:.8125rem;color:var(--wgray);margin-top:.75rem;text-align:center}
.launch-pay__fine{font-family:var(--font-ui);font-size:.8125rem;line-height:1.6;color:var(--wgray);text-align:center;margin-top:var(--md);max-width:560px;margin-left:auto;margin-right:auto}

/* 9c WHAT HAPPENS NEXT */
.launch-steps-wrap{margin-bottom:var(--xl)}
.launch-steps{list-style:none;display:grid;gap:var(--sm);max-width:520px;margin:0 auto;counter-reset:none}
.launch-steps li{display:flex;align-items:flex-start;gap:var(--sm);font-family:var(--font-ui);font-size:.9375rem;line-height:1.55;color:var(--char)}
.launch-steps__n{flex-shrink:0;width:28px;height:28px;border-radius:50%;background:rgba(var(--jade-rgb),.12);color:var(--jade-dk);font-family:var(--font-ui);font-size:.875rem;font-weight:700;display:flex;align-items:center;justify-content:center}
.launch-steps strong{font-weight:600;color:var(--jade-dk)}

/* 9f EMAIL CAPTURE (secondary, subordinate) */
.launch-notify{background:var(--sand-lt);border-radius:14px;padding:var(--lg);margin-bottom:var(--lg)}
.launch-notify__headline{font-size:1.125rem;font-weight:600;color:var(--char);margin-bottom:.5rem;text-align:center}
.launch-notify__sub{font-family:var(--font-ui);font-size:.9375rem;line-height:1.6;color:var(--wgray);text-align:center;max-width:480px;margin:0 auto var(--md)}
.launch-form{max-width:440px;margin:0 auto;display:flex;flex-direction:column;gap:var(--sm)}
.launch-form__field{display:flex;flex-direction:column;gap:.35rem}
.launch-form label{font-family:var(--font-ui);font-size:.8125rem;font-weight:600;color:var(--char)}
.launch-form input[type=text],.launch-form input[type=email]{font-family:var(--font-ui);font-size:1rem;padding:.7rem .9rem;border:1.5px solid var(--sand-dk);border-radius:8px;background:var(--white);color:var(--char)}
.launch-form input[type=text]:focus,.launch-form input[type=email]:focus{outline:none;border-color:var(--jade)}
.launch-form__radios{border:none;display:flex;flex-wrap:wrap;gap:var(--sm)}
.launch-form__radios legend{font-family:var(--font-ui);font-size:.8125rem;font-weight:600;color:var(--char);margin-bottom:.35rem}
.launch-form__radio{display:inline-flex;align-items:center;gap:.4rem;font-weight:400;font-size:.9375rem}
.launch-form__status{font-family:var(--font-ui);font-size:.875rem;margin:0;min-height:1px}
.launch-form__status--error{color:var(--terra)}
.launch-form__status--error a{color:var(--terra);text-decoration:underline}
.launch-form button[type=submit]{margin-top:.25rem}
.launch-form__success{font-family:var(--font-ui);font-size:1rem;font-weight:500;color:var(--jade-dk);text-align:center;max-width:440px;margin:0 auto;padding:var(--sm) 0}

/* 9g TRUST SIGNALS */
.launch-trust{text-align:center;border-top:1px solid var(--sand-dk);padding-top:var(--lg);margin-bottom:var(--xl)}
.launch-trust__line{font-family:var(--font-ui);font-size:.875rem;font-weight:600;color:var(--char);margin-bottom:var(--sm)}
.launch-trust__fine{font-family:var(--font-ui);font-size:.8125rem;line-height:1.65;color:var(--wgray);max-width:560px;margin:0 auto}

/* MOBILE STICKY CTA – fixed bottom bar, mobile only */
.launch-sticky{
  display:none;
  position:fixed;
  bottom:0;left:0;right:0;
  background:var(--jade-dk);
  border-top:1px solid rgba(255,255,255,.12);
  padding:10px 20px;
  padding-bottom:calc(10px + env(safe-area-inset-bottom));
  z-index:500;
  box-shadow:0 -8px 28px rgba(0,0,0,.2);
}
.launch-sticky.is-visible{display:block;animation:slideUp .22s ease-out}
.launch-sticky__inner{max-width:480px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px}
.launch-sticky__copy{font-family:var(--font-ui);font-size:.8125rem;color:rgba(255,255,255,.75);line-height:1.3}
.launch-sticky__copy strong{display:block;font-size:.9375rem;color:var(--white)}
.launch-sticky__btn{flex-shrink:0;background:var(--terra);color:var(--white);border:none;font-size:.875rem;padding:.625rem 1.125rem;white-space:nowrap;min-height:44px}
.launch-sticky__btn:hover,.launch-sticky__btn:focus{background:var(--terra);color:var(--white)}
@keyframes slideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
@media(min-width:768px){.launch-sticky{display:none!important}}

@media(max-width:1024px){
  .launch-tiers{grid-template-columns:1fr;gap:var(--lg);padding-top:1.25rem}
  .launch-pillars__grid{grid-template-columns:1fr;gap:var(--md);max-width:520px;margin:0 auto}
}
@media(max-width:860px){
  /* Align cards section with the 680px text column so left edges match */
  .launch-pay{max-width:680px;margin-left:auto;margin-right:auto}
  .launch-notify{padding:var(--md)}
}

@media(max-width:767px){
  /* Hero – tighter spacing; the three-phone fan stays, scaled to fit 320px */
  .launch-hero{padding:3rem 20px 220px}
  .launch-hero h1{font-size:clamp(1.75rem,7vw,2rem);line-height:1.15;letter-spacing:-.02em}
  .launch-hero__sub{font-size:1rem;line-height:1.65}
  .launch-hero__phones{margin-top:-200px;padding:0 12px}
  .launch-hero__phone--center{max-width:min(230px,50vw)}
  .launch-hero__phone--side{max-width:min(175px,38vw);margin:0}
  .launch-hero__phones .launch-hero__phone--side:first-child{margin-right:max(-80px,-20vw);transform:rotate(-6deg)}
  .launch-hero__phones .launch-hero__phone--side:last-child{margin-left:max(-80px,-20vw);transform:rotate(6deg)}

  /* The point – keep the words big; they are the show */
  .launch-point{padding:var(--lg) 20px var(--xl)}
  .launch-point__state--rebuilding{font-size:clamp(1.625rem,8vw,2rem)}
  .launch-point__state--rising{font-size:clamp(2rem,10vw,2.5rem)}
  .launch-point__state--ready{font-size:clamp(2.375rem,12vw,3rem)}

  /* Pillars */
  .launch-pillars{padding:var(--xl) 20px;margin:0 12px;border-radius:24px}
  .launch-pillars h2{margin-bottom:var(--lg)}

  /* Privacy */
  .launch-privacy{padding:var(--lg) 20px}

  /* Pricing section – explicit side padding ensures cards don't touch screen edges */
  .launch-pay{padding:var(--lg) var(--sm);width:100%;max-width:100%;box-sizing:border-box}
  .launch-tiers{padding-top:1.5rem;gap:var(--md);width:100%;max-width:100%}
  .launch-tier{margin-bottom:0;padding:var(--md);min-width:0;width:100%;box-sizing:border-box}
  .launch-tier__badge{font-size:.6875rem;padding:.3rem .75rem}
  .launch-tier__price{font-size:2.25rem}
  .launch-tier__price span{font-size:.9375rem}
  .launch-tier__body{font-size:.9375rem;margin-bottom:var(--sm)}
  .launch-tier__cta{min-height:52px;font-size:1rem;margin-top:0;text-align:center;white-space:normal;width:100%;box-sizing:border-box}

  /* Steps – compact */
  .launch-steps-wrap{margin-bottom:var(--lg)}
  .launch-steps{gap:.875rem}
  .launch-steps li{font-size:.9375rem}
  .launch-steps__n{width:32px;height:32px;font-size:1rem;font-weight:700;flex-shrink:0}

  /* Notify – single-column form, no extra wrapper padding needed */
  .launch-notify{margin-bottom:var(--md);padding:var(--md) var(--sm)}
  .launch-notify__headline{font-size:1.0625rem}
  .launch-notify__sub{font-size:.9375rem;margin-bottom:var(--sm)}
  .launch-form{width:100%;max-width:none;margin:0;padding:0;gap:12px}
  .launch-form__field{width:100%;box-sizing:border-box}
  .launch-form input[type=text],.launch-form input[type=email]{width:100%;box-sizing:border-box;height:52px;font-size:16px;padding:0 16px;border-radius:8px;border:1.5px solid var(--sand-dk);-webkit-appearance:none;appearance:none}
  .launch-form input[type=text]:focus,.launch-form input[type=email]:focus{outline:none;border-color:var(--jade);box-shadow:0 0 0 3px rgba(42,107,104,.15)}
  .launch-form__radios{flex-direction:column;gap:8px;padding:0;min-inline-size:0;width:100%;border:0;margin:0}
  .launch-form__radio{min-height:44px;width:100%;display:flex;align-items:center;gap:12px;padding:0 4px}
  .launch-form button[type=submit]{width:100%;min-height:52px;height:auto;font-size:1rem;border-radius:8px;padding:.875rem 1.5rem;transition:background 150ms ease,transform 100ms ease}
  .launch-form button[type=submit]:active{transform:scale(0.98)}

  /* Trust – reduce mascot size, tighten top */
  .launch-trust{padding-top:var(--md);margin-bottom:var(--lg)}
  .launch-trust img{height:clamp(120px,32vw,160px)!important}
  .launch-trust__line{font-size:.875rem}
  .launch-trust__fine{font-size:.8125rem}

  /* Sticky bar – tighter copy and button for small screens */
  .launch-sticky{padding:10px 16px;padding-bottom:calc(10px + env(safe-area-inset-bottom))}
  .launch-sticky__inner{gap:10px;max-width:none}
  .launch-sticky__copy{font-size:.75rem;line-height:1.35}
  .launch-sticky__copy strong{font-size:.875rem}
  .launch-sticky__btn{font-size:.8125rem;padding:.625rem 1rem;min-height:44px}

  /* Breathing room above footer for sticky bar */
  .launch{padding-bottom:calc(var(--lg) + 72px)}
}

/* Tiny screens */
@media(max-width:360px){
  .launch-sticky__copy strong{font-size:.8125rem}
  .launch-sticky__copy{font-size:.6875rem}
  .launch-sticky__btn{font-size:.75rem;padding:.5rem .75rem}
}

/* Confirmed page */
@media(max-width:767px){
  .confirm{padding:64px 20px}
  .confirm__col{max-width:480px;padding:0}
  .confirm__check{width:72px;height:72px;margin-bottom:24px}
  .confirm__headline{font-size:28px}
  .confirm p{font-size:17px;line-height:1.7}
  .confirm__actions{flex-direction:column;gap:12px;width:100%}
  .confirm__actions .btn{width:100%;min-height:52px}
}

/* =====================================================
   /launch-confirmed
   ===================================================== */
.confirm-top{display:flex;justify-content:center;padding:var(--md) var(--md) 0}
.confirm-top__logo{color:var(--jade-dk)}
.confirm{padding:var(--lg) var(--md) var(--xxl)}
.confirm__col{max-width:560px;margin:0 auto;text-align:center}
.confirm__check{width:88px;height:88px;margin:0 auto var(--md)}
.confirm__check svg{width:100%;height:100%}
.confirm__headline{font-size:clamp(1.625rem,4vw,2.25rem);color:var(--jade-dk);margin-bottom:var(--md)}
.confirm p{font-family:var(--font-prose);font-size:1.0625rem;line-height:1.7;color:var(--char);margin:0 auto var(--sm);max-width:480px}
.confirm__actions{display:flex;gap:var(--sm);justify-content:center;flex-wrap:wrap;margin:var(--lg) 0}
.confirm__fine{font-family:var(--font-ui);font-size:.875rem;color:var(--wgray)}

/* Trust line repeated beside the price; FAQ escape hatch */
.launch-trust__line--tiers{margin:var(--md) auto var(--xs);text-align:center}
.launch-pay__faq{text-align:center;margin-top:var(--sm);font-family:var(--font-ui);font-size:.9375rem}
.launch-pay__faq a{font-weight:600;color:var(--jade);text-decoration:none}
.launch-pay__faq a:hover{color:var(--jade-dk)}
