/* Editorial statements. Tunable motion values; the resting state is readable. */
.welcome-lp {
  --type-duration: 620ms;
  --type-stagger: 80ms;
  --type-distance: 22px;
  --type-ease: cubic-bezier(.16,1,.3,1);
  --type-accent: var(--yellow);
  --mask-duration: 1100ms;
  --mask-stagger: 120ms;
  --mask-distance: 105%;
  --mask-accent: #2f7654;
}
.welcome-lp .type-statement {
  font-family: var(--font-body);
  font-weight: 900;
  font-feature-settings: "palt";
  letter-spacing: -.055em;
  line-height: 1.25;
  text-wrap: balance;
}
.welcome-lp .type-line {
  display: block;
  overflow: clip;
  padding-block: .09em;
  margin-block: -.025em;
  white-space: normal;
}
.welcome-lp .type-ink { display: block; }
/* Family benefits: full line travel inside a mask, without fading the body copy. */
.welcome-lp .type-masked {
  --type-duration: var(--mask-duration);
  --type-stagger: var(--mask-stagger);
  --type-distance: var(--mask-distance);
}
.welcome-lp .type-masked .type-line { overflow: hidden; }
.welcome-lp .type-assurance .type-line:last-child { color: var(--mask-accent); }
@keyframes masked-line-arrive {
  from { transform: translateY(var(--type-distance)); }
  to { transform: translateY(0); }
}
.welcome-lp .type-playing .type-ink {
  animation: type-arrive var(--type-duration) var(--type-ease) both;
  animation-delay: calc(var(--type-order, 0) * var(--type-stagger));
}
.welcome-lp :where(.type-masked).type-playing .type-ink { animation-name: masked-line-arrive; }
@keyframes type-arrive {
  from { transform: translateY(var(--type-distance)); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}
/* The promise leads; the invitation beside it stays available during the reveal. */
.welcome-lp .entrance-copy { align-items: center; padding-block: 64px 72px; }
.welcome-lp .entrance-copy .type-hero { font-size: clamp(52px,5.65vw,82px); line-height: 1.2; }
.welcome-lp .type-hero .type-line:first-child { font-size: .56em; font-weight: 700; letter-spacing: -.025em; margin-bottom: .2em; }
.welcome-lp .type-hero .type-line:nth-child(2) { color: var(--type-accent); }
.welcome-lp .reasons .section-heading .type-benefit { font-size: clamp(40px,5.1vw,70px); line-height: 1.28; }
.welcome-lp .type-benefit .type-line:first-child { font-size: .57em; font-weight: 700; letter-spacing: -.035em; margin-bottom: .25em; }
.welcome-lp .flow-intro .type-trial { font-size: clamp(38px,4.25vw,58px); line-height: 1.28; }
.welcome-lp .type-trial .type-line:nth-child(2) { font-size: .68em; font-weight: 700; margin-block: .1em; }
.welcome-lp .type-trial .type-line:last-child { color: var(--type-accent); }
.welcome-lp .closing .type-closing { font-size: clamp(34px,3.7vw,54px); line-height: 1.3; }
.welcome-lp .type-closing .type-line:first-child { font-size: .64em; font-weight: 700; letter-spacing: -.03em; margin-bottom: .24em; }
.welcome-lp .type-closing .type-line:last-child { color: var(--ink); }
@media (max-width:900px) {
  .welcome-lp .entrance-copy { padding-block: 48px 52px; }
  .welcome-lp .entrance-copy .type-hero { font-size: clamp(44px,7.5vw,68px); }
  .welcome-lp .flow-intro .type-trial { font-size: clamp(35px,4.4vw,44px); }
}
@media (max-width:600px) {
  .welcome-lp { --type-duration: 480ms; --type-stagger: 65ms; --type-distance: 12px; }
  /* Keep each short assurance statement inside one mask on narrow phones. */
  .welcome-lp .assurance-heading .type-assurance { font-size: clamp(23px,7.18vw,28px); }
  .welcome-lp .assurance-list h3.type-masked { font-size: clamp(18px,5.38vw,21px); }
  .welcome-lp .entrance-copy { padding: 36px 22px 44px; gap: 28px; }
  .welcome-lp .entrance-copy .type-hero { font-size: clamp(38px,11.3vw,60px); line-height: 1.24; }
  .welcome-lp .reasons .section-heading .type-benefit { font-size: clamp(29px,8.4vw,42px); line-height: 1.32; }
  .welcome-lp .type-benefit .type-line:first-child { font-size: .65em; }
  .welcome-lp .flow-intro .type-trial { font-size: clamp(38px,11vw,52px); }
  .welcome-lp .closing .type-closing { font-size: clamp(30px,9vw,43px); }
}
@media (prefers-reduced-motion:reduce) {
  .welcome-lp .type-playing .type-ink { animation: none; transform: none; opacity: 1; }
}
.welcome-lp.reduce-motion .type-playing .type-ink { animation: none; transform: none; opacity: 1; }
@media print { .welcome-lp .type-playing .type-ink { animation: none; transform: none; opacity: 1; } }
