:root {
  --lp-width: 640px;
  --fade-duration: 2.8s;
  --fade-easing: cubic-bezier(.22, 1, .36, 1);
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  min-width: 320px;
}

body {
  background: #f4f4f4;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

img {
  display: block;
  max-width: 100%;
  height: auto;
}

.lp {
  width: min(100%, var(--lp-width));
  margin-inline: auto;
  overflow: hidden;
  background: #fff;
}

.fv {
  position: relative;
  width: 100%;
  aspect-ratio: 2829 / 4605;
  overflow: hidden;
}

.fv__background {
  width: 100%;
  height: 100%;
  object-fit: fill;
}

.fv__message,
.fv__free,
.fv__cta {
  position: absolute;
  z-index: 1;
  left: 50%;
}

.fv__message {
  top: 13.5%;
  left: 48.5%;
  width: 89.8%;
  transform: translateX(-50%);
}

.fv__free {
  top: 37%;
  left: 28.2%;
  width: 51.8%;
  transform: translateX(-50%);
}

.fade-in {
  opacity: 0;
  transition: opacity var(--fade-duration) var(--fade-easing);
}

.fade-in.is-visible {
  opacity: 1;
}

.fv__cta {
  bottom: 3.8%;
  width: 91.9%;
  transform: translateX(-50%);
  transform-origin: center;
  line-height: 0;
  animation: cta-pulse .95s ease-in-out infinite;
  will-change: transform;
}

.fv__cta img {
  width: 100%;
  height: auto;
}

.fv__cta:focus-visible {
  border-radius: 999px;
  outline: 4px solid #ff7a00;
  outline-offset: 4px;
}

.worries {
  position: relative;
  width: 100%;
  aspect-ratio: 2829 / 4035;
  overflow: hidden;
  background: #fff;
}

.worries__background {
  width: 100%;
  height: 100%;
  object-fit: fill;
}

.worry {
  position: absolute;
  z-index: 1;
  width: 45.9%;
  opacity: 0;
  transition: opacity var(--fade-duration) var(--fade-easing);
  transition-delay: var(--worry-delay, 0s);
}

.worry.is-visible {
  opacity: 1;
}

.worry--1,
.worry--3 {
  left: 3.2%;
}

.worry--2,
.worry--4 {
  right: 3.2%;
}

.worry--1,
.worry--2 {
  top: 20.8%;
}

.worry--3,
.worry--4 {
  top: 59.6%;
}

.worry--1 { --worry-delay: 0s; }
.worry--2 { --worry-delay: .35s; }
.worry--3 { --worry-delay: .7s; }
.worry--4 { --worry-delay: 1.05s; }

.support {
  position: relative;
  width: 100%;
  aspect-ratio: 2829 / 5586;
  overflow: hidden;
  background: #fff;
}

.support__background {
  width: 100%;
  height: 100%;
  object-fit: fill;
}

.support__lead,
.support__person,
.support__point {
  position: absolute;
  z-index: 1;
}

.support__lead {
  top: 20.5%;
  left: 3%;
  width: 65%;
  opacity: 0;
  transform: scale(.72);
  transform-origin: center;
  transition:
    opacity 1.5s var(--fade-easing),
    transform 1.8s var(--fade-easing);
}

.support__lead.is-visible {
  opacity: 1;
  transform: scale(1);
}

.support__person {
  z-index: 2;
  top: 16.8%;
  right: 1.5%;
  width: 41.7%;
}

.support__point {
  width: 46%;
  opacity: 0;
  transition: opacity var(--fade-duration) var(--fade-easing);
  transition-delay: var(--support-delay, 0s);
}

.support__point.is-visible {
  opacity: 1;
}

.support__point--1,
.support__point--3 {
  left: 3%;
}

.support__point--2,
.support__point--4 {
  right: 3%;
}

.support__point--1,
.support__point--2 {
  top: 34.8%;
}

.support__point--3,
.support__point--4 {
  top: 67.4%;
}

.support__point--1 { --support-delay: .55s; }
.support__point--2 { --support-delay: .9s; }
.support__point--3 { --support-delay: 1.25s; }
.support__point--4 { --support-delay: 1.6s; }

.anshin {
  position: relative;
  width: 100%;
  aspect-ratio: 2823 / 5562;
  overflow: hidden;
  background: #fff;
}

.anshin__background {
  width: 100%;
  height: 100%;
  object-fit: fill;
}

.anshin__item,
.anshin__cta {
  position: absolute;
  z-index: 1;
  left: 50%;
}

.anshin__item {
  width: 96.1%;
  opacity: 0;
  transform: translate3d(-50%, 32px, 0);
  transition:
    opacity var(--fade-duration) var(--fade-easing),
    transform var(--fade-duration) var(--fade-easing);
  transition-delay: var(--anshin-delay, 0s);
}

.anshin__item.is-visible {
  opacity: 1;
  transform: translate3d(-50%, 0, 0);
}

.anshin__item--1 {
  top: 17.8%;
  --anshin-delay: 0s;
}

.anshin__item--2 {
  top: 40.1%;
  --anshin-delay: .4s;
}

.anshin__item--3 {
  top: 62.4%;
  --anshin-delay: .8s;
}

.anshin__cta {
  bottom: 3.5%;
  width: 85.6%;
  transform: translateX(-50%);
  transform-origin: center;
  line-height: 0;
  animation: cta-pulse .95s ease-in-out infinite;
  will-change: transform;
}

.anshin__cta img {
  width: 100%;
  height: auto;
}

.anshin__cta:focus-visible {
  border-radius: 999px;
  outline: 4px solid #ff7a00;
  outline-offset: 4px;
}

.flow {
  position: relative;
  width: 100%;
  aspect-ratio: 2823 / 3732;
  overflow: hidden;
  background: #fff;
}

.flow__background {
  width: 100%;
  height: 100%;
  object-fit: fill;
}

.flow__item {
  position: absolute;
  z-index: 1;
  left: 50%;
  width: 92.1%;
  opacity: 0;
  transform: translate3d(-50%, -28px, 0);
  transition:
    opacity var(--fade-duration) var(--fade-easing),
    transform var(--fade-duration) var(--fade-easing);
  transition-delay: var(--flow-delay, 0s);
}

.flow__item.is-visible {
  opacity: 1;
  transform: translate3d(-50%, 0, 0);
}

.flow__item--1 {
  top: 23.8%;
  --flow-delay: 0s;
}

.flow__item--2 {
  top: 38.7%;
  --flow-delay: .35s;
}

.flow__item--3 {
  top: 53.6%;
  --flow-delay: .7s;
}

.flow__item--4 {
  top: 69.7%;
  --flow-delay: 1.05s;
}

.flow__item--5 {
  top: 84.1%;
  --flow-delay: 1.4s;
}

.clients {
  position: relative;
  width: 100%;
  aspect-ratio: 2946 / 8658;
  overflow: hidden;
  background: #fff;
}

.clients__background {
  width: 100%;
  height: 100%;
  object-fit: fill;
}

.client {
  position: absolute;
  z-index: 1;
  left: 50%;
  opacity: 0;
  transform: translateX(-50%);
  transition: opacity var(--fade-duration) var(--fade-easing);
}

.client.is-visible {
  opacity: 1;
}

.client--1 {
  top: 14.8%;
  width: 81.8%;
}

.client--2 {
  top: 39.6%;
  width: 81.8%;
}

.client--3 {
  top: 62.6%;
  width: 86%;
}

.faq {
  position: relative;
  width: 100%;
  aspect-ratio: 2829 / 4653;
  overflow: hidden;
  background: #fff;
}

.faq__background {
  width: 100%;
  height: 100%;
  object-fit: fill;
}

.faq__item,
.faq__cta {
  position: absolute;
  z-index: 1;
  left: 50%;
}

.faq__item {
  width: 85.3%;
  opacity: 0;
  transform: translate3d(-50%, -28px, 0);
  transition:
    opacity var(--fade-duration) var(--fade-easing),
    transform var(--fade-duration) var(--fade-easing);
  transition-delay: var(--faq-delay, 0s);
}

.faq__item.is-visible {
  opacity: 1;
  transform: translate3d(-50%, 0, 0);
}

.faq__item--1 {
  top: 20.3%;
  --faq-delay: 0s;
}

.faq__item--2 {
  top: 41.9%;
  --faq-delay: .4s;
}

.faq__item--3 {
  top: 64.5%;
  --faq-delay: .8s;
}

.faq__cta {
  bottom: 2.8%;
  width: 85.4%;
  transform: translateX(-50%);
  transform-origin: center;
  line-height: 0;
  animation: cta-pulse .95s ease-in-out infinite;
  will-change: transform;
}

.faq__cta img {
  width: 100%;
  height: auto;
}

.faq__cta:focus-visible {
  border-radius: 999px;
  outline: 4px solid #ff7a00;
  outline-offset: 4px;
}

.lp-footer {
  width: min(100%, var(--lp-width));
  margin-inline: auto;
  padding-bottom: 28px;
  background: #fef1d8;
}

.lp-footer__links {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid rgba(0, 0, 0, .2);
  border-bottom: 1px solid rgba(0, 0, 0, .2);
}

.lp-footer__links a {
  padding: 18px 10px;
  color: #000;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  text-decoration: none;
  border-right: 1px solid rgba(0, 0, 0, .2);
  transition: background-color .2s ease;
}

.lp-footer__links a:last-child {
  border-right: 0;
}

.lp-footer__links a:hover {
  background: rgba(0, 0, 0, .06);
}

.lp-footer__links a:focus-visible {
  outline: 3px solid #000;
  outline-offset: -3px;
}

@keyframes cta-pulse {
  0%,
  100% {
    transform: translateX(-50%) scale(1);
  }

  50% {
    transform: translateX(-50%) scale(1.055);
  }
}

@media (prefers-reduced-motion: reduce) {
  .fade-in {
    opacity: 1;
    transition: none;
  }

  .worry {
    opacity: 1;
    transition: none;
  }

  .support__lead,
  .support__point {
    opacity: 1;
    transition: none;
  }

  .support__lead {
    transform: scale(1);
  }

  .anshin__item {
    opacity: 1;
    transform: translate3d(-50%, 0, 0);
    transition: none;
  }

  .anshin__cta {
    animation: none;
  }

  .flow__item {
    opacity: 1;
    transform: translate3d(-50%, 0, 0);
    transition: none;
  }

  .client {
    opacity: 1;
    transition: none;
  }

  .faq__item {
    opacity: 1;
    transform: translate3d(-50%, 0, 0);
    transition: none;
  }

  .faq__cta {
    animation: none;
  }

  .fv__cta {
    animation: none;
  }
}
