:root{
  --bg:#0A0F1E;
  --bg-mid:#0D1526;
  --bg-deep:#070B15;
  --panel:rgba(21,32,58,.55);
  --line:rgba(96,140,220,.16);
  --line-strong:rgba(96,140,220,.32);
  --text:#FFFFFF;
  --text-sub:#FFFFFF;
  --text-dim:rgba(255,255,255,.62);
  --blue:#4C8DFF;
  --blue-light:#6FB2FF;
  --cyan:#22D3EE;
  --grad-blue:linear-gradient(92deg,#6FB2FF 0%,#4C8DFF 45%,#22D3EE 100%);
  --grad-red:linear-gradient(94deg,#FF8A80 0%,#FF4D4D 55%,#FF7A45 100%);
  --line-green:#06C755;
  --line-green-deep:#04A94A;
  --green-ink:#03301A;
  --font-head:"Zen Kaku Gothic New","Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;
  --font-body:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  --font-mono:"IBM Plex Mono","Noto Sans JP",monospace;
  --radius:14px;
  --maxw:1080px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:linear-gradient(180deg,var(--bg) 0%,var(--bg-mid) 50%,var(--bg) 100%);
  color:var(--text);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.9;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;height:auto}
a{color:var(--blue-light)}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--blue-light);outline-offset:3px;border-radius:4px}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 20px}
.mono{font-family:var(--font-mono)}
/* 配色システム: 見出しは白ベース、キーワードのみ青グラデ（ブランド）／赤グラデ（危険・強調）で彩る */
.grad-text{background:var(--grad-blue);-webkit-background-clip:text;background-clip:text;color:transparent}
.grad-red-text{background:var(--grad-red);-webkit-background-clip:text;background-clip:text;color:transparent}
/* 目立たせたい本文は赤グラデーション（ユーザー指定） */
.hero__lead strong,.cause p strong,.about__body p strong,.refuse p strong,.pain-close strong{
  background:var(--grad-red);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:700;
}

/* ===== header ===== */
.header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:rgba(7,11,21,.78);
  backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.header__in{max-width:var(--maxw);margin:0 auto;padding:10px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.header__logo{display:inline-flex;align-items:center;gap:12px;color:var(--text);text-decoration:none;min-width:0}
.header__mark{width:43px;height:43px;flex:none;display:block;border-radius:12px;box-shadow:0 0 0 3px rgba(76,141,255,.1),0 5px 16px rgba(0,0,0,.25)}
.header__mark img{display:block;width:100%;height:100%}
.header__wordmark{display:flex;flex-direction:column;line-height:1.1;gap:5px}
.header__name{font-family:var(--font-head);font-weight:900;font-size:17px;letter-spacing:.035em;white-space:nowrap}
.header__name > span{color:#81C8FF}
.header__tagline{font-family:var(--font-mono);font-size:8px;font-weight:500;letter-spacing:.19em;color:rgba(170,205,246,.82)}
.header__cta{
  font-family:var(--font-head);font-weight:700;font-size:13px;
  background:var(--line-green);color:#fff;
  padding:10px 18px;border-radius:999px;text-decoration:none;white-space:nowrap;
  transition:transform .2s,box-shadow .2s;
}
.header__cta:hover{transform:translateY(-1px);box-shadow:0 4px 18px rgba(6,199,85,.4)}

/* ===== hero ===== */
.hero{position:relative;padding:128px 0 84px;overflow:hidden}
.hero__aurora{position:absolute;inset:-20% -10%;pointer-events:none;filter:blur(70px);opacity:.55}
.hero__aurora span{position:absolute;border-radius:50%}
.hero__aurora span:nth-child(1){width:56vw;height:56vw;max-width:760px;max-height:760px;left:-12%;top:-18%;background:radial-gradient(circle,#1D4ED8 0%,transparent 62%);animation:drift1 22s ease-in-out infinite alternate}
.hero__aurora span:nth-child(2){width:44vw;height:44vw;max-width:620px;max-height:620px;right:-8%;top:-4%;background:radial-gradient(circle,#0EA5E9 0%,transparent 60%);animation:drift2 26s ease-in-out infinite alternate}
.hero__aurora span:nth-child(3){width:36vw;height:36vw;max-width:520px;max-height:520px;right:22%;bottom:-30%;background:radial-gradient(circle,#155ECC 0%,transparent 60%);animation:drift3 24s ease-in-out infinite alternate}
@keyframes drift1{to{transform:translate(9%,12%) scale(1.12)}}
@keyframes drift2{to{transform:translate(-8%,10%) scale(.94)}}
@keyframes drift3{to{transform:translate(6%,-10%) scale(1.08)}}
.hero::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(rgba(96,140,220,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(96,140,220,.05) 1px,transparent 1px);
  background-size:76px 76px;
  mask-image:linear-gradient(to bottom,rgba(0,0,0,.9),transparent 85%);
  -webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,.9),transparent 85%);
}
.hero__in{position:relative;z-index:1;max-width:840px;margin:0 auto;text-align:center}
.hero__badge{
  display:inline-flex;align-items:center;gap:8px;
  font-size:12.5px;font-weight:700;letter-spacing:.06em;
  color:var(--blue-light);border:1px solid var(--line-strong);
  background:rgba(76,141,255,.08);
  padding:7px 15px;border-radius:999px;margin-bottom:28px;
}
.hero__badge::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--grad-blue);box-shadow:0 0 8px rgba(76,141,255,.8);animation:pulse 2.2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
.hero__title{
  font-family:var(--font-head);font-weight:900;
  font-size:clamp(21px,5.2vw,48px);
  line-height:1.5;letter-spacing:.015em;
  margin-bottom:24px;
}
.hero__title-win{
  display:block;width:max-content;max-width:100%;margin:12px auto 0;
  font-size:clamp(24px,6.5vw,64px);line-height:1.28;letter-spacing:-.05em;white-space:nowrap;
  background:linear-gradient(100deg,#A9D7FF 0%,#5C9FFF 48%,#39E0F0 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 3px 18px rgba(76,141,255,.3));
}
.hero__title-win::after{content:"";display:block;width:54%;height:4px;margin:9px auto 0;border-radius:999px;background:var(--grad-blue)}
.hero__lead{color:var(--text-sub);font-size:clamp(15px,1.8vw,17px);max-width:640px;margin:0 auto 38px}
.hero__lead p+p{margin-top:14px}
.hero__lead strong{color:var(--text);font-weight:700}

/* ===== cta ===== */
.cta-btn{
  display:inline-flex;flex-direction:column;align-items:center;gap:2px;text-align:center;
  background:linear-gradient(180deg,#0BDA66,var(--line-green) 55%,var(--line-green-deep));
  color:#fff;text-decoration:none;
  font-family:var(--font-head);font-weight:900;font-size:18px;letter-spacing:.03em;
  padding:18px 46px;border-radius:999px;
  box-shadow:0 8px 30px rgba(6,199,85,.32);
  transition:transform .2s,box-shadow .2s;
}
@keyframes gentleZoom{0%,100%{transform:scale(1)}50%{transform:scale(1.035)}}
.cta-btn{animation:gentleZoom 2.6s ease-in-out infinite}
.cta-btn:hover{animation-play-state:paused;transform:translateY(-2px) scale(1.02);box-shadow:0 12px 38px rgba(6,199,85,.45)}
body.motion-off .cta-btn{animation:none}
.cta-btn small{font-size:11.5px;font-weight:500;letter-spacing:.02em;opacity:.95}
.cta-note{font-size:12px;color:var(--text-sub);margin-top:12px;line-height:1.7;text-align:center}
.hero-cta{display:inline-flex;flex-direction:column;align-items:center}

/* ===== sections ===== */
.section{padding:92px 0;position:relative}
.section--panel{
  background:linear-gradient(180deg,var(--bg-deep) 0%,#0A1122 55%,var(--bg-deep) 100%);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.sec-head{margin-bottom:46px;text-align:center}
.sec-head__title{font-family:var(--font-head);font-weight:900;font-size:clamp(23px,3.4vw,34px);line-height:1.5}
.sec-head__lead{color:var(--text-sub);margin-top:14px;max-width:660px;text-align:left}
.sec-head__lead p+p{margin-top:10px}

/* pain */
.pain-list{display:grid;gap:12px;max-width:700px}
.pain{
  display:flex;gap:15px;align-items:flex-start;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:19px 22px;backdrop-filter:blur(6px);
}
.pain__check{
  flex-shrink:0;width:24px;height:24px;margin-top:5px;
  border:1.5px solid var(--blue);border-radius:7px;color:var(--blue-light);
  display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;
}
.pain__body{flex:1}
.pain p{line-height:1.8}
.pain__body p+p{margin-top:8px}
.pain-close{margin:34px auto 0;max-width:700px;color:var(--text-sub);text-align:center}
.pain-close strong{color:var(--text)}

/* cause */
.cause{
  position:relative;max-width:780px;
  background:linear-gradient(165deg,rgba(76,141,255,.10) 0%,rgba(21,32,58,.55) 45%);
  border:1px solid var(--line);border-radius:var(--radius);
  padding:36px 38px;
  overflow:hidden;
}
.cause::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--grad-blue);opacity:.85}
.cause h3{font-family:var(--font-head);font-weight:900;font-size:clamp(20px,2.8vw,27px);line-height:1.6;margin-bottom:18px}
.cause p{color:var(--text-sub)}
.cause p strong{color:var(--text)}
.cause p+p{margin-top:14px}

/* value */
.value-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;max-width:880px;margin:0 auto}
.value-card{
  position:relative;
  background:linear-gradient(165deg,rgba(76,141,255,.10) 0%,rgba(21,32,58,.55) 45%);
  border:1px solid var(--line);border-radius:var(--radius);
  padding:30px 26px;
  transition:border-color .3s,transform .3s;
  overflow:hidden;
}
.value-card:hover{border-color:var(--line-strong);transform:translateY(-3px)}
.value-card::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--grad-blue);opacity:.85}
.value-card h3{font-family:var(--font-head);font-weight:700;font-size:18.5px;line-height:1.55;margin-bottom:14px}
.value-card p{font-size:14px;color:var(--text-sub);line-height:1.9}
.value-card p+p{margin-top:10px}
/* promise */
.promise-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.promise{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:26px 24px;backdrop-filter:blur(6px);
}
.promise__icon{
  width:34px;height:34px;border-radius:10px;margin-bottom:14px;
  background:linear-gradient(135deg,rgba(111,178,255,.18),rgba(34,211,238,.10));
  border:1px solid var(--line-strong);
  display:flex;align-items:center;justify-content:center;
  color:var(--blue-light);font-size:15px;font-weight:700;font-family:var(--font-mono);
}
.promise h3{font-family:var(--font-head);font-weight:700;font-size:16.5px;margin-bottom:8px;line-height:1.5}
.promise p{font-size:13.5px;color:var(--text-sub);line-height:1.85}

/* refuse */
.refuse{
  margin-top:38px;max-width:860px;
  background:linear-gradient(150deg,rgba(255,176,86,.08),rgba(21,32,58,.45) 60%);
  border:1px solid rgba(255,180,90,.28);border-radius:var(--radius);
  padding:28px 32px;
}
.refuse__label{
  display:inline-block;font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;
  color:#FFB056;border:1px solid rgba(255,180,90,.4);border-radius:4px;
  padding:3px 10px;margin-bottom:14px;
}
.refuse h3{font-family:var(--font-head);font-weight:900;font-size:clamp(17.5px,2.3vw,22px);line-height:1.6;margin-bottom:12px}
.refuse p{font-size:14.5px;color:var(--text-sub);line-height:1.9}
.refuse p+p{margin-top:10px}
.refuse p strong{color:var(--text)}

/* about */
.about{
  max-width:840px;
  background:linear-gradient(150deg,rgba(76,141,255,.10),rgba(21,32,58,.5) 55%);
  border:1px solid var(--line);border-radius:var(--radius);
  padding:36px 38px;
}
.about__body h3{font-family:var(--font-head);font-weight:900;font-size:clamp(18px,2.4vw,23px);line-height:1.6;margin-bottom:16px}
.about__body h3 > span{display:block}
.about__body h3 > span + span{margin-top:10px}
.about__body h3 .grad-text{display:inline}
.about__body p{color:var(--text-sub);font-size:14.5px}
.about__body p strong{color:var(--text)}
.about__body p+p{margin-top:24px}

/* about-proof */
.about-proof{margin:0 0 30px}
.about-proof__title{
  font-family:var(--font-head);font-weight:900;font-size:clamp(17px,2.2vw,21px);
  text-align:center;margin:0 0 16px;
}
.about-proof__grid{display:grid;grid-template-columns:1fr;gap:14px;max-width:376px;margin:0 auto}
.about-proof__grid figure{
  margin:0;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:10px;backdrop-filter:blur(6px);
}
.about-proof__grid img{width:100%;height:auto;border-radius:9px;display:block}
.about-proof__grid figcaption{font-size:12.5px;color:#FFF;text-align:center;padding:10px 2px 4px;line-height:1.6}
.about-proof__grid figcaption .num{font-weight:700}
.about-proof__note{font-size:10px;color:var(--text-dim);text-align:center;margin-top:12px}

/* faq */
.faq{max-width:780px}
.faq-item{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);margin-bottom:10px;overflow:hidden;backdrop-filter:blur(6px)}
.faq-item summary{
  cursor:pointer;list-style:none;padding:19px 24px;
  font-weight:700;font-size:15px;display:flex;justify-content:space-between;align-items:center;gap:14px;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";font-family:var(--font-mono);color:var(--blue-light);font-size:19px;flex-shrink:0;transition:transform .25s}
.faq-item[open] summary::after{transform:rotate(45deg)}
.faq-item div{padding:0 24px 21px;font-size:14.5px;color:var(--text-sub);line-height:1.9}
.faq-item div p+p{margin-top:10px}

/* operator profile */
.profile{
  max-width:860px;margin:0 auto;padding:36px 40px;
  background:linear-gradient(150deg,rgba(76,141,255,.11),rgba(21,32,58,.55) 55%);
  border:1px solid var(--line);border-radius:var(--radius);
}
.profile__head{display:flex;align-items:center;gap:22px;margin-bottom:24px}
.profile__icon{width:104px;height:104px;object-fit:cover;border-radius:50%;border:2px solid var(--line-strong);flex-shrink:0;background:#fff}
.profile__head h3{font-family:var(--font-head);font-size:clamp(21px,2.7vw,27px);font-weight:900;line-height:1.5}
.profile__story{font-size:15px;color:var(--text-sub);line-height:1.95}
.profile__story > p + p{margin-top:18px}
.profile__story > p:last-child{margin-top:24px}
.profile__milestones{display:flex;flex-direction:column;align-items:stretch;gap:8px;margin:26px 0}
.profile__milestone-arrow{align-self:center;color:var(--blue-light);font-size:24px;font-weight:900;line-height:1}
.profile__milestone{display:flex;flex-direction:column;align-items:center;gap:3px;margin:0;padding:22px 18px;background:var(--panel);border:1px solid var(--line-strong);border-radius:12px;color:var(--text);font-weight:700;text-align:center;line-height:1.7}
.profile__milestone span{font-size:clamp(12px,3.6vw,15px)}
.profile__milestone strong{color:var(--blue-light);font-family:var(--font-head);font-size:clamp(23px,6.5vw,32px);line-height:1.35;white-space:nowrap}

/* cta band */
.cta-band{
  position:relative;text-align:center;padding:84px 20px;overflow:hidden;
  background:linear-gradient(180deg,var(--bg-deep),#0B1631 55%,var(--bg-deep));
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.cta-band::before{
  content:"";position:absolute;left:50%;top:-40%;width:820px;height:520px;transform:translateX(-50%);
  background:radial-gradient(closest-side,rgba(76,141,255,.22),transparent);
  filter:blur(30px);pointer-events:none;
}
.cta-band__in{position:relative}
.cta-band__title{font-family:var(--font-head);font-weight:900;font-size:clamp(21px,3.2vw,30px);line-height:1.65;margin-bottom:10px}
.cta-band__sub{color:var(--text-sub);font-size:14.5px;margin-bottom:30px}

/* footer */
.footer{padding:56px 0 0;background:var(--bg-deep);border-top:1px solid var(--line)}
.footer h2{font-family:var(--font-head);font-size:14px;font-weight:700;color:var(--text-sub);margin-bottom:12px}
.footer p{font-size:12px;color:#6C7A94;line-height:2;margin-bottom:16px}
.footer .op{border-top:1px solid var(--line);padding-top:20px;margin-top:8px}
.footer .footer__copyright{margin:30px 0 0;padding:20px;text-align:center;border-top:1px solid var(--line)}

/* sp fixed cta */
.sp-cta{
  position:fixed;left:0;right:0;bottom:0;z-index:99;
  padding:0 16px calc(18px + env(safe-area-inset-bottom));
  display:none;
  pointer-events:none;
  transform:translateY(130%);
  transition:transform .35s ease;
}
.sp-cta.is-visible{transform:translateY(0)}
.sp-cta a{
  display:block;text-align:center;pointer-events:auto;
  background:linear-gradient(180deg,#0BDA66,var(--line-green) 55%,var(--line-green-deep));color:#fff;
  font-family:var(--font-head);font-weight:900;font-size:15.5px;
  padding:14px;border-radius:999px;text-decoration:none;
  box-shadow:0 8px 28px rgba(6,199,85,.42),0 2px 10px rgba(0,0,0,.35);
  animation:gentleZoom 2.6s ease-in-out infinite;
}
body.motion-off .sp-cta a{animation:none}

/* motion */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
.reveal.is-in{opacity:1;transform:none}
.motion-stop{
  display:none;position:fixed;right:14px;bottom:14px;z-index:200;
  background:var(--panel);color:var(--text-sub);border:1px solid var(--line);
  font-size:11.5px;padding:8px 14px;border-radius:999px;cursor:pointer;font-family:var(--font-body);
}
@media (prefers-reduced-motion:reduce){.motion-stop{display:block}}
body.motion-off .reveal{opacity:1;transform:none;transition:none}
body.motion-off .hero__aurora span{animation:none}
body.motion-off .hero__badge::before{animation:none}

/* responsive */
/* 本文（p内）の指定改行はスマホ専用。PC・タブレットでは文章を続けて表示する */
@media (min-width:768px){
  .hero__lead p br,.pain__body p br,.pain-close br,.cause p br,.sec-head__lead p br,.value-card p br,.about__body p br,.promise p br,.refuse p br,.faq-item div p br,.cta-band__sub br{display:none}
  /* PCは中央軸レイアウト（左寄り回避） */
  .sec-head__lead{margin-left:auto;margin-right:auto}
  .pain-list,.cause,.about,.refuse,.faq{margin-left:auto;margin-right:auto}
}
@media (max-width:1023px){
  .value-grid{grid-template-columns:1fr}
  .promise-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:767px){
  body{font-size:15px}
  .header__in{padding:9px 20px}
  .header__mark{width:39px;height:39px;border-radius:11px}
  .header__name{font-size:15px}
  .header__tagline{font-size:7px}
  .footer .footer__copyright{padding-bottom:calc(105px + env(safe-area-inset-bottom))}
  .section{padding:66px 0}
  .profile{padding:26px 20px}
  .profile__head{gap:14px}
  .profile__icon{width:72px;height:72px}
  .hero{padding:108px 0 60px}
  .hero__title{letter-spacing:0}
  .hero__title-win{margin-left:0;margin-right:0}
  .hero__title-win::after{margin-left:0}
  .hero__in{text-align:left}
  .promise-grid{grid-template-columns:1fr}
  .header__cta{display:none}
  .sp-cta{display:block}
  .cta-btn{width:100%;max-width:420px;font-size:15.5px;padding:16px 20px}
  .hero-cta{width:100%;align-items:center}
  .cause{padding:26px 22px}
  .about{padding:28px 22px}
  .about-proof__grid{grid-template-columns:1fr}
}
