.loading-wrap {
  position: fixed;
  z-index: 999;
  display: grid;
  place-items: center;
  width: 100vw;
  height: 100vh;
  box-sizing: border-box;
  background-color: #fff;
  overflow: hidden;
}

#loading-text {
  font-size: 26px;
  text-transform: uppercase;
  font-weight: lighter;
  color: #3088ff;
}

#loading-text span {
  opacity: 0;
}

.p-mv {
  width: 100%;
  height: 85vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  position: relative;
}

.p-mv__inner {
  position: relative;
  z-index: 2;
  width: 100%;
  height: 0;
}

.p-mv__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.p-mv__inner::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #000;
  opacity: 0.25;
}

.p-mv__heading {
  position: absolute;
  bottom: 2%;
  left: 5%;
  color: #fff;
  font-size: 6.5vw;
  z-index: 1;
}

.p-mv__heading img {
  height: 9rem;
  max-width: 95%;
}

.p-mv__outer {
  position: absolute;
  bottom: 5%;
  width: 100%;
  text-align: center;
  z-index: 2;
  font-size: 0.85em;
  font-weight: 400;
  letter-spacing: 0.2em;
  margin: 0;
  padding: 0 2.5rem;
}

@media (max-width: 768px) {
  .p-mv__heading {
    bottom: -3%;
  }
  .p-mv__outer {
    bottom: 1.2%;
  }
}

.p-mask {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 85vh;
  background: linear-gradient(0deg, #cee1fb 13.02%, #cef8fb 100%);
  z-index: 0;
}

#app {
  background-color: #ffffff;
}

.demo-wrapper {
  overflow-x: hidden;
}

.wrapper {
  display: flex;
}

.demo-gallery {
  z-index: 3;
  position: relative;
}

.demo-gallery .gallery {
  display: flex;
  gap: 1rem;
}

.demo-gallery img {
  height: 20vw;
}

.demo-gallery:not(.last) {
  padding-bottom: 1rem;
}

.demo-text .text {
  font-size: clamp(8rem, 15vw, 16rem);
  line-height: 1;
  font-weight: 900;
  text-wrap: nowrap;
  margin-bottom: -0.3em;
  color: #70adff;
  display: flex;
  gap: 7rem;
}

.demo-text .text img {
  height: clamp(7rem, 14vw, 15rem);
}

@media (max-width: 768px) {
  .demo-text .text {
    margin-bottom: -0.1em;
    gap: 3rem;
  }
  .demo-text .text img {
    height: 5rem;
  }
  .demo-gallery img {
    height: 35vw;
  }
}

.mockup {
  position: relative;
  z-index: 1;
  width: 100%;
  display: flex;
}

.spline-viewer-outer {
  flex-shrink: 0;
  height: 60vh;
  width: 50vw;
  /* overflow: hidden; */
  position: relative;
}

#spline-viewer {
  height: 75vh;
  width: 165%;
  pointer-events: none;
  cursor: pointer;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  z-index: 0;
}

.mockup-strs {
  flex-grow: 1;
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  gap: 1rem;
  padding: 1rem;
  z-index: 1;
}

.mockup-strs .logo {
  height: 3.25rem;
}

@media (max-width: 768px) {
  .mockup {
    flex-direction: column;
  }
  .spline-viewer-outer {
    width: 100%;
    height: 60vh;
    margin-top: -4rem;
  }
  #spline-viewer {
    height: 100vh;
    width: 230%;
    transform: translate(-50%, -50%) scale(0.8, 0.8);
    -webkit-transform: translate(-50%, -50%) scale(0.8, 0.8);
    -ms-transform: translate(-50%, -50%) scale(0.8, 0.8);
  }
}

.appimage {
  position: relative;
  z-index: 2;
  background-color: #f5f5f5;
}

.container-medium {
  padding-top: 7rem;
  padding-bottom: 7rem;
}

.container-medium > h2 {
  font-size: min(3vh,2rem);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.25em;
  margin-bottom: 2rem;
  text-align: center;
  color: #3088ff;
}

.lp-phone-mockup-block .lp-phone-mockup-wrapper {
  display: flex;
  justify-content: space-evenly;
  position: relative;
}

.lp-phone-mockup-block .lp-phone-mockup-wrapper > div {
  height: 65vh;
}

.lp-phone-mockup-block .lp-phone-mockup-device {
  flex-shrink: 0;
  position: relative;
  line-height: 0;
  height: 100%;
  aspect-ratio: 1172 / 2193;
}

.lp-phone-mockup-block .lp-phone-mockup-frame {
  position: absolute;
  z-index: 10;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: auto;
}

.lp-phone-mockup-block .lp-phone-mockup-slides-container-outer {
  position: absolute;
  z-index: 7;
  border-radius: 40px;
  overflow: hidden;
  box-sizing: border-box;
  height: 87%;
  width: 75%;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
}

.lp-phone-mockup-block .lp-phone-mockup-slides-container {
  position: relative;
  padding-bottom: 34%;
}

.lp-phone-mockup-block .lp-phone-mockup-slides-container img {
  width: 100%;
  height: auto;
}

.lp-phone-mockup-block .lp-phone-mockup-steps {
	font-size: min(1.5vh,1rem);
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-evenly;
}

.lp-phone-mockup-block .lp-phone-mockup-step {
  display: flex;
  gap: 1.5em;
  align-items: start;
}

.lp-phone-mockup-block .lpms-badge-wrapper {
  display: flex;
  justify-content: center;
  align-items: center;
}

.lp-phone-mockup-block .lpms-badge {
  width: 2.5em;
  height: 2.5em;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #fff;
  font-size: 1.5em;
  font-weight: 900;
  background: #3088ff;
  border-radius: 50%;
}

.lp-phone-mockup-block .lpms-badge img {
  width: 65%;
  height: auto;
}

.lp-phone-mockup-block .lpms-body h4 {
	font-size: 1.6em !important;
  letter-spacing: 0.15em;
  margin-bottom: 0.25em;
}

.lp-phone-mockup-block .lpms-body .subject {
  border-bottom: solid 2px #3088ff;
  color: #3088ff;
  padding-bottom: 0.5em;
  font-weight: 600;
  margin-bottom: 1em;
}

.lp-phone-mockup-block .lpms-body .context {
  margin-bottom: 0.5em;
  letter-spacing: 0.15em;
}

@media (max-width: 768px) {
  .container-medium {
    padding-top: 5rem;
    padding-bottom: 5rem;
  }
  .container-medium > h2 {
    font-size: 1.5rem;
    margin-bottom: 0.1rem;
  }
  .lp-phone-mockup-block .lp-phone-mockup-wrapper {
    flex-direction: column;
  }
  .lp-phone-mockup-block .lp-phone-mockup-device {
    margin: 0 auto;
  }
  .lp-phone-mockup-block .lp-phone-mockup-slides-container-outer {
    border-radius: 25px;
  }
  .lp-phone-steps-col {
    height: 8rem !important;
  }
  .lp-phone-mockup-block .lp-phone-mockup-steps {
    position: relative;
    height: auto;
    font-size: 0.85rem;
  }
  .lp-phone-mockup-block .lp-phone-mockup-step {
    position: absolute;
    background: linear-gradient(180deg, rgba(245, 245, 245, 0) 0%, #f5f5f5 11%);
    z-index: 15;
    padding: 1em;
  }
}

.morefunc {
  position: relative;
  overflow: hidden;
  background-color: #f5f5f5;
  border-radius: 0.75rem;
  aspect-ratio: 5 / 6;
}

.morefunc img {
  width: 70%;
  height: auto;
  position: absolute;
  bottom: 0;
  right: 0;
}

@media (max-width: 768px) {
  .morefunc {
    aspect-ratio: 13 / 12;
  }
  .morefunc img {
    width: 50%;
  }
  .service-head {
    margin-top: 1.5rem;
  }
  .service-head br {
    display: none;
  }
}

#top {
  height: 85vh;
}

#top .top-circle {
  height: 80vh;
  width: 80vh;
  position: absolute;
  border-radius: 100rem;
  opacity: 0.75;
}

#top .top-circle.blue {
  top: 7vh;
  right: 14vh;
  background: radial-gradient(
    50% 50% at 50% 50%,
    #1bf8dd 0%,
    rgba(27, 248, 221, 0) 100%
  );
}

#top .top-circle.green {
  top: -15vh;
  right: -10vh;
  background: radial-gradient(
    50% 50% at 50% 50%,
    #6dfb56 0%,
    rgba(109, 251, 86, 0) 100%
  );
}

#top .type01 {
  height: 2.25rem;
}

#top .type02 {
  height: 5.5rem;
}

#top .logo {
  height: 3.25rem;
}

#top .text-mfblue {
  font-size: 1.8rem;
}

#top .image {
  max-height: 80vh;
  max-width: 80%;
}

#top .bg-mfblue {
  margin: 1.8rem 0;
}

#top .bg-lblue-herf {
  z-index: -1;
}

@media (max-width: 768px) {
  #top {
    height: 95vh;
    min-height: -webkit-fill-available;
    /* max-height: 680px; */
  }
  #top .type01,
  #top .type02,
  #top .logo {
    max-width: 100%;
  }
  #top .texts {
    padding-top: 5.5rem !important;
  }
  #top .image {
    max-width: 80%;
    margin-top: -10rem;
  }
  #top .top-circle {
    height: 70vh;
    width: 70vh;
  }
  #top .top-circle.blue {
    top: 7vh;
    right: -2vh;
  }

  #top .top-circle.green {
    top: -20vh;
    right: -25vh;
  }
}

#change-hand {
  max-width: 100%;
}

#service .bg .bg-wrap {
  position: relative;
  display: inline-block;
  margin-top: 5px;
}
#service .bg.is-animated .bg-wrap::before {
  animation: bg 2.6s cubic-bezier(0.22, 1, 0.36, 1) forwards;
  background: linear-gradient(to right, #cee1fb 20%, #cef8fb 100%);
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  transform-origin: left center;
}
#service .bg .bg-wrap .inn {
  color: #333333;
  display: inline-block;
  font-weight: bold;
  padding: 0.25em 0.5em;
  position: relative;
  z-index: 1;
}

@keyframes bg {
  0% {
    opacity: 0;
    transform: scaleX(0) translateX(-5%);
  }
  30% {
    transform: scaleX(1) translateX(0);
  }
  100% {
    transform: scaleX(1) translateX(0);
  }
  30%,
  100% {
    opacity: 1;
  }
}

.text-vl {
  writing-mode: vertical-rl;
}

.infinite-slider {
  margin-bottom: -6rem;
}

.infinite-slider .page-head {
  font-size: 8.7rem;
  font-weight: 700;
  line-height: normal;
  background: linear-gradient(
    90deg,
    #00bea5 0%,
    #00cac6 51.28%,
    #00a3c6 74.87%,
    #007fc6 100%
  );
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  text-fill-color: transparent;
  mix-blend-mode: color-dodge;
  opacity: 0.35;
  white-space: nowrap;
  user-select: none;
}

@media (max-width: 768px) {
  .infinite-slider .page-head {
    font-size: 6rem;
  }
}

.infinite-slider .swiper-wrapper,
.media-slider .swiper-wrapper,
.collab-slider .swiper-wrapper {
  transition-timing-function: linear;
}

.media-slider img {
  height: 5.5em;
  margin-left: 1em;
}

.collab-slider img {
  height: 7.5em;
  margin-left: 1em;
}

.prodlogo {
  height: 7.5rem;
}

.attention {
  font-size: 0.45rem;
  letter-spacing: 0.2em;
  line-height: 2.5em;
}

.prodback {
  position: absolute;
  height: 60vh;
  width: 100%;
  transform: translateX(-9%) translateY(2vh);
  z-index: -1;
}

.prodimage {
  width: 120%;
  max-width: 45vw;
}

#walker {
  margin-top: 5.25rem;
  padding-bottom: 12.5rem;
  margin-bottom: -11rem;
  z-index: 10;
  position: relative;
}

@media (max-width: 992px) {
  .prodback {
    position: relative;
    transform: translateX(0) translateY(0);
    background: linear-gradient(
      180deg,
      rgba(0, 0, 0, 0) 0%,
      rgba(0, 0, 0, 0) 5%,
      #00bfa6 5%,
      #00bfa6 100%
    );
    -webkit-transform: skew(0deg, -20deg);
    z-index: -1;
    padding-bottom: 15rem;
  }
  .prodimage {
    width: 60%;
    max-width: 650px;
    position: absolute;
    left: 18%;
  }
  #walker {
    margin-top: -3rem;
  }
}

@media (max-width: 768px) {
  .prodimage {
    width: 120%;
    left: -5%;
  }
}

.twitter-box {
  max-width: 530px;
  width: 100%;
  text-decoration: none;
  color: rgb(15, 20, 25);
  font-family: YakuHanJP, "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN",
    "Hiragino Sans", Meiryo, sans-serif;
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 0em;
  line-height: 20px;
  border-radius: 12px;
  padding: 15px 19px;
  background-color: #ffffff;
  box-shadow: 0px 0px 15px rgba(0, 0, 0, 0.15);
  transition: all 0.3s;
}

.twitter-box:hover {
  opacity: 1 !important;
  transition: all 0.3s;
  color: rgb(15, 20, 25);
  background-color: rgb(247, 249, 249);
}

.twitter-box .icon {
  height: 48px;
  width: 48px;
  border-radius: 999px;
}

.twitter-box .bold {
  font-weight: 700;
}

.twitter-box .sub {
  color: rgb(83, 100, 113);
}

.twitter-box .twicon {
  font-size: 25px;
  color: rgb(29, 155, 240);
  padding-bottom: 23px;
}

.twitter-box p {
  font-size: 20px;
  line-height: 1.3em;
  margin-bottom: 0.25em;
}

@media screen and (max-width: 480px) {
  .twitter-box {
    max-width: 90%;
  }
}
