:root{
  --pink:#f83279;--pink-deep:#ef3f8d;--green:#08b72c;--ink:#403138;
  /* 1u = 画面幅の1%（430px以上は4.3pxで固定） */
  --u:min(1vw,4.3px);
}
*,*::before,*::after{box-sizing:border-box}
html{overflow-x:hidden;background:#000;scroll-behavior:smooth}
body{
  width:100%;max-width:430px;min-height:100svh;margin:0 auto;overflow-x:hidden;
  background:#fbe4ea;color:#333;
  font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue","Hiragino Kaku Gothic ProN","Hiragino Sans","Noto Sans JP",Arial,sans-serif;
  box-shadow:0 0 20px rgba(0,0,0,.18)
}
img,video{display:block;max-width:100%}
a{color:inherit}

/* ===== 共通固定動画背景 ===== */
.site-video-bg{position:relative;z-index:0;width:100%;isolation:isolate}
.site-video-bg__visual{
  position:fixed;z-index:0;top:0;left:50%;width:min(100%,430px);height:100svh;
  overflow:hidden;pointer-events:none;transform:translateX(-50%)
}
.site-video-bg__video{width:100%;height:115%;object-fit:cover;object-position:61% -90px;}
.site-video-bg__overlay{
  position:absolute;z-index:1;inset:0;
  background:linear-gradient(to bottom,rgba(255,248,250,.12) 0%,rgba(255,244,248,.25) 30%,rgba(255,233,242,.55) 65%,rgba(255,220,236,.78) 100%)
}
.fv,.about,.members,.flow{position:relative;z-index:1;background:transparent}

/* ===== FV ===== */
.fv{width:100%;min-height:100svh;overflow:hidden;isolation:isolate}
.fv__petals{position:absolute;z-index:3;inset:0;overflow:hidden;pointer-events:none}
.petal{
  position:absolute;top:-18%;width:calc(var(--u)*8);aspect-ratio:1;
  background:url("./img/petal.png") center/contain no-repeat;opacity:0;
  will-change:transform,opacity;animation:petal-fall linear infinite
}
.petal--1{left:4%;width:calc(var(--u)*7.9);animation-duration:10s;animation-delay:-1s}
.petal--2{left:17%;width:calc(var(--u)*11.2);animation-duration:13s;animation-delay:-7s}
.petal--3{left:31%;width:calc(var(--u)*7);animation-duration:9s;animation-delay:-4s}
.petal--4{left:48%;width:calc(var(--u)*10.2);animation-duration:12s;animation-delay:-10s}
.petal--5{left:63%;width:calc(var(--u)*7.4);animation-duration:11s;animation-delay:-2s}
.petal--6{left:74%;width:calc(var(--u)*12.1);animation-duration:14s;animation-delay:-8s}
.petal--7{left:86%;width:calc(var(--u)*8.4);animation-duration:10s;animation-delay:-5s}
.petal--8{left:92%;width:calc(var(--u)*6.5);animation-duration:8s;animation-delay:-3s}
.petal--9{left:40%;width:calc(var(--u)*9.3);animation-duration:15s;animation-delay:-12s}
@keyframes petal-fall{
  0%{opacity:0;transform:translate3d(0,-15vh,0) rotate(0) scale(.72)}
  10%{opacity:.82}48%{transform:translate3d(52px,48vh,0) rotate(150deg) scale(1)}
  75%{opacity:.72}100%{opacity:0;transform:translate3d(-48px,117vh,0) rotate(310deg) scale(.88)}
}
.fv__content{
  position:relative;z-index:4;display:flex;min-height:calc(100svh - calc(var(--u)*45));
  padding:clamp(285px,53svh,330px) calc(var(--u)*4.2) calc(var(--u)*4.2);
  flex-direction:column;align-items:center;text-align:center
}
.fv__line-label{
  display:inline-flex;width:fit-content;margin:0 0 calc(var(--u)*2.8);padding:calc(var(--u)*1.86) calc(var(--u)*4.65) calc(var(--u)*2.1);
  align-items:center;justify-content:center;border-radius:999px;background:rgba(255,255,255,.92);
  box-shadow:0 4px 14px rgba(190,85,126,.18);font-size:calc(var(--u)*4.88);font-weight:700;letter-spacing:.04em
}
.fv__line-label strong{margin-right:.18em;color:#00b93f;font-weight:900}
.fv__title{
  margin:0;color:var(--pink);font-size:calc(var(--u)*14.02);font-weight:900;line-height:1.02;letter-spacing:-.06em;
  text-shadow:0 2px 0 #fff,0 5px 16px rgba(201,41,101,.28)
}
.fv__lead{margin:calc(var(--u)*3.49) 0 calc(var(--u)*3.95);color:#333;font-size:calc(var(--u)*4.88);font-weight:800;letter-spacing:.02em;text-shadow:0 1px 5px rgba(255,255,255,.85)}
.fv__lead span{color:var(--pink)}
.fv__merits{display:grid;width:100%;margin:0;padding:0;grid-template-columns:repeat(3,1fr);gap:calc(var(--u)*1.4);list-style:none}
.fv__merits li{
  display:flex;min-width:0;padding:calc(var(--u)*2.1) calc(var(--u)*.93);align-items:center;justify-content:center;gap:calc(var(--u)*.93);
  border:2px solid #f89abf;border-radius:999px;background:rgba(255,255,255,.94);box-shadow:0 4px 9px rgba(187,71,119,.16);
  color:#454545;font-size:calc(var(--u)*3.02);font-weight:700;white-space:nowrap
}
.fv__merit-icon,
.fv__merits li > i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--pink);
  font-size: 0.95em;
  line-height: 1;
}

.fv__merit-icon i {
  display: block;
}
.fv__bottom{
  position:relative;z-index:5;padding:calc(var(--u)*3) calc(var(--u)*3.72) max(calc(var(--u)*3.49),env(safe-area-inset-bottom));
  background:linear-gradient(135deg,#f94d91 0%,#f4307a 56%,#ef3f8d 100%);text-align:center
}
.fv__start{position:relative;display:inline-block;margin:0 0 calc(var(--u)*2.1);padding:0 calc(var(--u)*11.16);color:#fff;font-size:calc(var(--u)*4.65);font-weight:800;letter-spacing:.04em;line-height:1.3}
.fv__start::before,.fv__start::after{position:absolute;top:50%;display:block;width:calc(var(--u)*6.51);height:2px;background:rgba(255,255,255,.9);content:""}
.fv__start::before{left:calc(var(--u)*.93);transform:rotate(60deg)}
.fv__start::after{right:calc(var(--u)*.93);transform:rotate(-60deg)}
.fv__start span{margin:0 .08em;color:#fff02b;font-size:1.18em}
.fv__cta,.members__cta,.flow__cta{
  display:flex;width:100%;min-height:calc(var(--u)*16.28);padding:calc(var(--u)*2.1) calc(var(--u)*3.49);
  align-items:center;justify-content:center;gap:calc(var(--u)*2.33);border:3px solid #fff;border-radius:999px;
  background:linear-gradient(135deg,#19c936 0%,#00aa24 100%);box-shadow:0 7px 0 rgba(0,86,22,.3),0 9px 18px rgba(77,14,53,.22);
  color:#fff;font-size:calc(var(--u)*5.58);font-weight:900;letter-spacing:-.02em;line-height:1;text-decoration:none;
  animation:cta-pulse 3.6s ease-in-out infinite;transform-origin:center;will-change:transform,filter
}
@keyframes cta-pulse{0%,8%,100%{transform:scale(1);filter:brightness(1)}4%{transform:scale(1.04);filter:brightness(1.08)}12%{transform:scale(1.02);filter:brightness(1.04)}16%{transform:scale(1);filter:brightness(1)}}
.fv__cta:hover,.members__cta:hover,.flow__cta:hover{filter:brightness(1.08);animation-play-state:paused;transform:scale(1.025)}
.fv__cta:active,.members__cta:active,.flow__cta:active{transform:scale(.98)}
.fv__line-icon,.members__line-icon,.flow__line-icon{
  display:grid;width:calc(var(--u)*9.77);height:calc(var(--u)*9.77);flex:0 0 calc(var(--u)*9.77);
  place-items:center;border-radius:50%;background:#fff;color:#04ae2a;font-size:calc(var(--u)*2.79);font-weight:900;letter-spacing:-.06em
}
.fv__arrow,.members__arrow,.flow__arrow-icon{
  display:flex;width:calc(var(--u)*6.51);height:calc(var(--u)*6.51);flex:0 0 calc(var(--u)*6.51);
  align-items:center;justify-content:center;border-radius:50%;background:#fff;color:#00a81e
}
.fv__arrow i,.members__arrow i,.flow__arrow-icon i{display:block;font-size:calc(var(--u)*3.72);line-height:1}
.fv__note{margin:calc(var(--u)*2.56) 0 0;color:rgba(255,255,255,.94);font-size:calc(var(--u)*2.33);letter-spacing:.02em}

/* ===== 共通見出し・about ===== */
.about__inner{padding:calc(var(--u)*12.09) calc(var(--u)*3.72) calc(var(--u)*13.49);text-align:center}
.about__eyebrow,.members__eyebrow,.flow__eyebrow{
  display:inline-block;margin:0 0 calc(var(--u)*2.79);padding:calc(var(--u)*1.86) calc(var(--u)*4.19);
  border:1px solid rgba(249,83,142,.38);border-radius:999px;background:rgba(255,255,255,.72);color:#ef4c8c;
  font-size:calc(var(--u)*3.49);font-weight:800;letter-spacing:.04em
}
.about__title{margin:0;color:#f0357d;font-size:calc(var(--u)*12.56);font-weight:900;letter-spacing:-.07em;line-height:1.1;text-shadow:0 2px 0 #fff,0 6px 18px rgba(185,59,112,.23)}
.about__catch{display:inline-block;margin:calc(var(--u)*2.79) 0 calc(var(--u)*5.35);padding:calc(var(--u)*1.86) calc(var(--u)*3.49);background:linear-gradient(90deg,#f75a99,#f4387f);color:#fff;font-size:calc(var(--u)*4.19);font-weight:800;line-height:1.3;transform:rotate(-1.2deg)}
.about__catch span{color:#fff23e}
.about__lead-box{margin:0 auto calc(var(--u)*5.58);padding:calc(var(--u)*4.88) calc(var(--u)*3.72) calc(var(--u)*4.65);border:1px solid rgba(255,255,255,.92);border-radius:calc(var(--u)*5.58);background:rgba(255,255,255,.77);box-shadow:0 10px 22px rgba(150,64,97,.14);backdrop-filter:blur(8px)}
.about__lead{margin:0 0 calc(var(--u)*3.02);color:#2e2d30;font-size:calc(var(--u)*4.88);font-weight:800;line-height:1.4}
.about__lead strong{color:#00b53b}
.about__text{margin:0;color:#343033;font-size:calc(var(--u)*3.95);font-weight:700;line-height:1.7}
.about__text strong,.about__text span{color:#f23f82}
.about__types{display:grid;grid-template-columns:repeat(3,1fr);gap:calc(var(--u)*1.86)}
.about-card{min-width:0;padding:calc(var(--u)*3.72) calc(var(--u)*1.63) calc(var(--u)*3.95);border:1px solid rgba(255,255,255,.95);border-radius:calc(var(--u)*5.12);background:rgba(255,255,255,.84);box-shadow:0 8px 16px rgba(136,62,89,.14);backdrop-filter:blur(7px);text-align:center}
.about-card__icon--plain{position:relative;width:calc(var(--u)*23.95);aspect-ratio:1;margin:0 auto calc(var(--u)*2.79);overflow:hidden;isolation:isolate;border:calc(var(--u)*.93) solid #f25c98;border-radius:50%;background:#f7dbe6;box-shadow:0 4px 10px rgba(225,60,125,.18)}
.about-card__icon--plain img{width:100%;height:100%;max-width:none;border-radius:inherit;object-fit:cover;object-position:center}
.about-card h3{margin:0 0 calc(var(--u)*1.86);color:#ef3d81;font-size:calc(var(--u)*4.42);font-weight:900;line-height:1.2;white-space:nowrap}
.about-card p{margin:0;color:#4d4147;font-size:calc(var(--u)*2.56);font-weight:600;line-height:1.55}
.about__bottom-message{margin-top:calc(var(--u)*7.91);text-align:center}
.about__bottom-message span{display:block;margin-bottom:calc(var(--u)*2.79);color:#514149;font-size:calc(var(--u)*5.12);font-weight:800;letter-spacing:.04em;line-height:1.35}
.about__bottom-message strong,.flow__bottom strong{display:inline-block;max-width:100%;padding:calc(var(--u)*2.56) calc(var(--u)*4.65) calc(var(--u)*2.79);background:linear-gradient(90deg,#ef3f82 0%,#f75a99 100%);box-shadow:0 6px 14px rgba(190,51,108,.26);color:#fff;font-size:calc(var(--u)*7.21);font-weight:900;letter-spacing:-.02em;line-height:1.15;text-shadow:0 1px 0 rgba(150,28,73,.28)}

/* ===== Members ===== */
.members{min-height:calc(var(--u)*176.75);padding:0 0 calc(var(--u)*14.88);overflow:hidden;color:var(--ink)}
.members__inner{padding:calc(var(--u)*12.56) 0 0;text-align:center}
.members__title{margin:0;color:var(--ink);font-size:calc(var(--u)*7.67);font-weight:900;line-height:1.34;letter-spacing:-.04em;text-shadow:0 1px 0 #fff}
.members__title span{color:#f03d82;font-size:1.12em}
.members__lead{margin:calc(var(--u)*3.26) calc(var(--u)*4.19) calc(var(--u)*6.05);color:#5c4a52;font-size:calc(var(--u)*3.72);font-weight:700;line-height:1.65}
.members__marquee{position:relative;width:100%;overflow:hidden;padding:calc(var(--u)*2.79) 0 calc(var(--u)*4.65)}
.members__track{display:flex;width:max-content;gap:calc(var(--u)*2.79);animation:members-scroll 20s linear infinite;will-change:transform}
.members__item{position:relative;width:calc(var(--u)*27.44);height:calc(var(--u)*27.44);flex:0 0 calc(var(--u)*27.44);overflow:hidden;border:calc(var(--u)*.93) solid rgba(255,255,255,.96);border-radius:50%;background:#f9d7e3;box-shadow:0 5px 12px rgba(178,72,113,.22),0 0 0 2px #f48bb5}
.members__item img{width:100%;height:100%;object-fit:cover;object-position:center}
.members__item:nth-child(2n){transform:translateY(calc(var(--u)*3.02))}
.members__item:nth-child(3n){transform:translateY(calc(var(--u)*.93))}
@keyframes members-scroll{from{transform:translateX(0)}to{transform:translateX(-53%)}}
.members__point{display:flex;margin:calc(var(--u)*5.12) calc(var(--u)*4.19) calc(var(--u)*6.05);padding:calc(var(--u)*3.72) calc(var(--u)*3.26);align-items:center;justify-content:center;gap:calc(var(--u)*2.33);border:1px solid rgba(255,255,255,.94);border-radius:calc(var(--u)*5.12);background:rgba(255,255,255,.78);box-shadow:0 8px 18px rgba(152,68,104,.12);backdrop-filter:blur(8px)}
.members__point-icon{display:grid;width:calc(var(--u)*9.77);height:calc(var(--u)*9.77);flex:0 0 calc(var(--u)*9.77);place-items:center;border-radius:50%;background:linear-gradient(135deg,#fa77ad,#ef3e80);color:#fff;font-size:calc(var(--u)*6.51)}
.members__point p{margin:0;color:#514149;font-size:calc(var(--u)*3.26);font-weight:700;line-height:1.55;text-align:left}
.members__point strong{color:#ef3f82;font-size:1.08em}
.members__cta-box,.flow__cta-box{padding:calc(var(--u)*4.19) calc(var(--u)*3.26) calc(var(--u)*3.26);border:1px solid rgba(255,255,255,.95);background:rgba(255,255,255,.76);box-shadow:0 10px 22px rgba(152,68,104,.14);backdrop-filter:blur(8px)}
.members__cta-top,.flow__cta-top{margin:0 0 calc(var(--u)*2.33);color:#ee4383;font-size:calc(var(--u)*4.65);font-weight:900}
.members__cta-top::before,.members__cta-top::after,.flow__cta-top::before,.flow__cta-top::after{margin:0 .35em;color:#f270a5;content:"✦"}
.members__note,.flow__note{margin:calc(var(--u)*2.56) 0 0;color:#7d6c73;font-size:calc(var(--u)*2.56)}

/* ===== Flow ===== */
.flow{padding:0 0 calc(var(--u)*16.74);color:var(--ink)}
.flow__inner{padding:calc(var(--u)*13.49) calc(var(--u)*4.19) 0;text-align:center}
.flow__title{margin:0 0 calc(var(--u)*6.98);color:var(--ink);font-size:calc(var(--u)*8.37);font-weight:900;line-height:1.27;letter-spacing:-.05em;text-shadow:0 1px 0 #fff}
.flow__title span{color:#f03d82;font-size:1.17em}
.flow__steps{display:grid;gap:calc(var(--u)*1.86)}
.flow-card{position:relative;padding:calc(var(--u)*4.19) calc(var(--u)*3.72) calc(var(--u)*4.65);border:1px solid rgba(255,255,255,.96);border-radius:calc(var(--u)*5.58);background:rgba(255,255,255,.8);box-shadow:0 10px 22px rgba(145,66,101,.15);backdrop-filter:blur(8px)}
.flow-card__head{display:flex;margin-bottom:calc(var(--u)*2.79);align-items:center;justify-content:flex-start}
.flow-card__step{display:inline-block;padding:calc(var(--u)*1.4) calc(var(--u)*2.79);border-radius:999px;background:linear-gradient(90deg,#f96ca8,#f03d81);color:#fff;font-size:calc(var(--u)*3.02);font-weight:900;letter-spacing:.08em}
.flow-card__icon--image{width:calc(var(--u)*39.53);max-width:100%;aspect-ratio:1;margin:0 auto calc(var(--u)*3.26);overflow:hidden;border-radius:calc(var(--u)*4.19);background:#f8dfe8;box-shadow:0 6px 14px rgba(187,73,124,.18)}
.flow-card__icon--image img{width:100%;height:100%;object-fit:cover;object-position:center}
.flow-card h3{margin:0 0 calc(var(--u)*2.33);color:#ed3f82;font-size:calc(var(--u)*5.12);font-weight:900;line-height:1.32}
.flow-card p{margin:0;color:#514149;font-size:calc(var(--u)*3.49);font-weight:700;line-height:1.68}
.flow-card strong{color:#ef3e81;font-size:1.08em}
.flow__arrow{display:grid;width:calc(var(--u)*8.84);height:calc(var(--u)*8.84);margin:0 auto;place-items:center;border-radius:50%;background:linear-gradient(135deg,#f875ad,#ef3f81);box-shadow:0 5px 10px rgba(219,60,119,.25);color:#fff;font-size:calc(var(--u)*6.05);font-weight:900;line-height:1}
.flow__bottom{margin:calc(var(--u)*7.91) 0 calc(var(--u)*5.12);text-align:center}
.flow__bottom p{margin:0 0 calc(var(--u)*2.79);color:#222;font-size:calc(var(--u)*4.65);font-weight:800;line-height:1.4;text-shadow:0 1px 0 rgba(255,255,255,.75)}
.flow__bottom strong{font-size:calc(var(--u)*5.7)}
.flow__cta-box {
  width: calc(100% + (var(--u) * 8.38));
  margin-right: calc(var(--u) * -4.19);
  margin-left: calc(var(--u) * -4.19);
  padding: calc(var(--u) * 4.19);
  border-radius: 0;
}

/* ===== スクロールアニメーション ===== */
.js-fade{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease;will-change:opacity,transform}
.js-fade.is-visible{opacity:1;transform:translateY(0)}
.about__eyebrow{transition-delay:0s}.about__title{transition-delay:.08s}.about__catch{transition-delay:.16s}.about__lead-box{transition-delay:.22s}.about-card:nth-child(1){transition-delay:.06s}.about-card:nth-child(2){transition-delay:.16s}.about-card:nth-child(3){transition-delay:.26s}.about__bottom-message{transition-delay:.1s}
.js-slide-in{opacity:0;transition:opacity .7s ease,transform .7s cubic-bezier(.22,1,.36,1);will-change:opacity,transform}
.js-slide-in--left{transform:translateX(-54px)}.js-slide-in--right{transform:translateX(54px)}.js-slide-in.is-visible{opacity:1;transform:translateX(0)}

/* ===== Footer ===== */
.footer{position:relative;z-index:2;padding:calc(var(--u)*9.77) calc(var(--u)*4.19) max(calc(var(--u)*7.44),env(safe-area-inset-bottom));background:radial-gradient(circle at 18% 0%,rgba(255,174,206,.28),transparent 32%),linear-gradient(145deg,#ee4d8b 0%,#df2f76 54%,#c91c61 100%);color:rgba(255,255,255,.94);text-align:center}
.footer__inner{width:100%;max-width:430px;margin:0 auto}
.footer__registration{margin:0;font-size:calc(var(--u)*3.02);font-weight:600;line-height:1.75;letter-spacing:.04em}
.footer__copyright{margin:calc(var(--u)*4.19) 0 calc(var(--u)*5.58);font-size:calc(var(--u)*2.79);font-weight:700;line-height:1.65;letter-spacing:.04em}
.footer__links{display:flex;flex-wrap:wrap;justify-content:center;gap:calc(var(--u)*1.63) calc(var(--u)*2.1);padding-top:calc(var(--u)*4.42);border-top:1px solid rgba(255,255,255,.35);font-size:calc(var(--u)*2.79);line-height:1.5}
.footer__links a{color:#fff;font-weight:700;text-decoration:underline;text-decoration-color:rgba(255,255,255,.7);text-underline-offset:3px}
.footer__links span{opacity:.7}

/* ===== 低い画面 / 動き軽減 ===== */
@media (max-height:720px){
  .fv__content{min-height:calc(100svh - calc(var(--u)*40));padding-top:clamp(260px,47svh,285px)}
  .fv__title{font-size:calc(var(--u)*13.86)}
  .fv__lead{margin:calc(var(--u)*2.79) 0 calc(var(--u)*3.02)}
  .fv__merits li{padding-block:calc(var(--u)*1.86)}
  .fv__bottom{padding-top:calc(var(--u)*2.33)}
  .fv__cta{min-height:calc(var(--u)*15.35)}
}
@media (prefers-reduced-motion:reduce){
  .petal,.members__track{animation:none}
  .js-fade,.js-slide-in,.js-slide-in--left,.js-slide-in--right{opacity:1;transform:none;transition:none}
}
