/* ============ TOKENS ============ */
:root{
  --navy:#0c1d30; --navy2:#10324f; --blue:#2C5F8D; --blue-br:#4a93cf; --cyan:#46c6d6;
  --orange:#E89B3C; --orange-br:#ffb755; --pink:#ff7a9c;
  --ink:#21303d; --mut:#5c7184; --bg:#FAFAFA; --soft:#eef4fa; --line:#e3ecf4; --white:#fff;
  --grad-hero:radial-gradient(900px 520px at 82% -8%, #1f4f78 0%, transparent 58%),
              radial-gradient(720px 460px at -5% 32%, #16415f 0%, transparent 55%),
              linear-gradient(165deg,#0a1a2c,#102b46 68%,#123553);
  --grad-cta:linear-gradient(120deg,var(--orange),var(--orange-br));
  --grad-cool:linear-gradient(120deg,var(--blue),var(--cyan));
  --grad-text:linear-gradient(100deg,#ffd479,#ff9d5c 58%,#ff7a9c);
  --shadow:0 22px 54px -24px rgba(12,32,56,.5);
  --shadow-sm:0 10px 26px -18px rgba(12,32,56,.5);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:'M PLUS Rounded 1c','Hiragino Maru Gothic ProN','Meiryo',sans-serif;
  color:var(--ink);background:
    radial-gradient(1100px 700px at 50% -10%, #18395a 0%, transparent 45%),
    linear-gradient(180deg,#0c1d30,#0c1d30);
  margin:0;line-height:1.85;font-size:16px;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
.en{font-family:'Montserrat',sans-serif;letter-spacing:.02em;}
.wrap{max-width:480px;margin:0 auto;background:var(--bg);min-height:100vh;
  box-shadow:0 0 120px -20px rgba(0,0,0,.6);position:relative;overflow:hidden;}
.ic{width:1em;height:1em;display:inline-block;vertical-align:-.12em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.ic.fill{fill:currentColor;stroke:none;}

/* ============ NAV ============ */
.gnav{position:sticky;top:0;z-index:50;background:rgba(250,250,250,.86);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);padding:11px 18px;display:flex;align-items:center;gap:10px;font-size:.8rem;}
.gnav .logo{font-weight:900;color:var(--blue);font-size:1.05rem;text-decoration:none;letter-spacing:.01em;}
.gnav .bc{color:#9fb2c2;font-weight:700;font-size:.74rem;white-space:nowrap;}
.gnav .nav-cta{margin-left:auto;background:var(--grad-cta);color:#fff;font-weight:800;
  padding:8px 16px;border-radius:30px;text-decoration:none;font-size:.82rem;white-space:nowrap;box-shadow:0 8px 18px -8px rgba(232,155,60,.8);}

/* ============ HERO ============ */
.hero{position:relative;background:var(--grad-hero);color:#fff;padding:40px 22px 92px;text-align:center;overflow:hidden;}
.hero .orb{position:absolute;border-radius:50%;filter:blur(3px);opacity:.55;animation:float 9s ease-in-out infinite;pointer-events:none;}
.hero .o1{width:120px;height:120px;background:radial-gradient(circle,#ffd47988,transparent 70%);top:8%;left:-4%;}
.hero .o2{width:180px;height:180px;background:radial-gradient(circle,#46c6d680,transparent 70%);bottom:14%;right:-8%;animation-delay:-3s;}
.hero .o3{width:90px;height:90px;background:radial-gradient(circle,#ff7a9c80,transparent 70%);top:14%;right:8%;animation-delay:-5s;}
.hero .floaticon{position:absolute;font-size:1.5rem;opacity:.6;animation:float 7s ease-in-out infinite;}
.hero .f1{top:30%;left:7%;}.hero .f2{bottom:30%;left:9%;animation-delay:-2s;}
.hero .f3{top:26%;right:6%;animation-delay:-4s;}
.hero-inner{position:relative;z-index:2;}
.kicker{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.26);border-radius:30px;padding:6px 15px;font-size:.74rem;font-weight:800;backdrop-filter:blur(6px);white-space:nowrap;}
.kicker .ic{color:var(--orange-br);}
.hero h1{font-size:2.05rem;font-weight:900;line-height:1.32;margin:18px 0 12px;letter-spacing:.005em;}
.hero h1 .grad{background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:transparent;}
.hero .sub{font-size:.98rem;opacity:.92;font-weight:500;margin:0 0 22px;line-height:1.75;}

/* hero passport chip (gamification lead) */
.lvchip{display:flex;align-items:center;gap:12px;text-align:left;max-width:330px;margin:0 auto 22px;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);border-radius:18px;padding:12px 14px;backdrop-filter:blur(8px);}
.lvchip .badge{flex:none;width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;
  background:var(--grad-cta);box-shadow:0 8px 18px -7px rgba(232,155,60,.8);font-size:1.4rem;}
.lvchip .lvbody{flex:1;min-width:0;}
.lvchip .lvtop{display:flex;justify-content:space-between;align-items:baseline;font-size:.72rem;font-weight:800;}
.lvchip .lvtop b{color:var(--orange-br);font-size:.86rem;}
.lvchip .lvtop span{opacity:.7;}
.lvbar{height:8px;border-radius:6px;background:rgba(255,255,255,.16);overflow:hidden;margin-top:6px;}
.lvbar i{display:block;height:100%;width:0;border-radius:6px;background:linear-gradient(90deg,var(--orange),var(--orange-br),var(--pink));transition:width 1.4s cubic-bezier(.2,.8,.2,1) .3s;}
.lvchip .lvmini{font-size:.68rem;opacity:.78;margin-top:5px;font-weight:700;}

.ctas{display:flex;flex-direction:column;gap:10px;max-width:330px;margin:0 auto;}
.btn-main{background:var(--grad-cta);color:#fff;font-weight:900;font-size:1.02rem;padding:15px 26px;
  border-radius:40px;text-decoration:none;box-shadow:0 16px 30px -10px rgba(232,155,60,.7);
  transition:transform .15s, box-shadow .15s;display:flex;align-items:center;justify-content:center;gap:8px;}
.btn-main:active{transform:translateY(1px);}
.btn-ghost{background:rgba(255,255,255,.08);color:#fff;font-weight:800;padding:13px 26px;border-radius:40px;
  text-decoration:none;border:1.5px solid rgba(255,255,255,.4);display:flex;align-items:center;justify-content:center;gap:7px;font-size:.95rem;}
.hero .micro{font-size:.72rem;opacity:.74;margin-top:13px;}
.wave{position:absolute;left:0;right:0;bottom:-1px;line-height:0;z-index:1;}
@keyframes float{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-18px) rotate(4deg)}}
@media(prefers-reduced-motion:reduce){.hero .orb,.hero .floaticon{animation:none;}}

/* ============ STAT STRIP ============ */
.stats{display:flex;gap:9px;padding:0 16px;margin-top:-58px;position:relative;z-index:5;}
.stat{flex:1;background:#fff;border:1px solid var(--line);border-radius:16px;
  padding:14px 6px;text-align:center;box-shadow:var(--shadow);}
.stat .v{font-family:'Montserrat',sans-serif;font-weight:900;font-size:1.5rem;
  background:var(--grad-cool);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1;}
.stat .v .u{font-size:.5em;-webkit-text-fill-color:var(--mut);}
.stat .l{font-size:.66rem;color:var(--mut);margin-top:6px;font-weight:700;line-height:1.4;}

/* ============ SECTION BASE ============ */
section{padding:54px 22px;position:relative;}
.eyebrow{display:flex;align-items:center;justify-content:center;gap:7px;font-family:'Montserrat',sans-serif;font-weight:800;
  font-size:.7rem;letter-spacing:.2em;color:var(--orange);margin-bottom:10px;}
.eyebrow::before,.eyebrow::after{content:"";width:18px;height:1.5px;background:currentColor;opacity:.45;border-radius:2px;}
h2{font-size:1.55rem;font-weight:900;color:var(--navy);text-align:center;margin:0 0 10px;letter-spacing:.005em;line-height:1.4;text-wrap:balance;}
/* キーセンテンスのキーワードを色で目立たせる（見出し内アクセント） */
.kw{color:var(--orange);font-size:inherit;font-weight:inherit;}
.dark .kw,.credo .kw,.final .kw{color:var(--orange-br);}
.lead{text-align:center;color:var(--mut);margin:0 auto 26px;font-weight:500;font-size:.92rem;text-wrap:pretty;}
.dark{background:var(--navy);color:#fff;}
.dark h2{color:#fff;}.dark .lead{color:rgba(255,255,255,.78);}
.angle-top{clip-path:polygon(0 30px,100% 0,100% 100%,0 100%);margin-top:-24px;padding-top:70px;}
.angle-bot{clip-path:polygon(0 0,100% 0,100% calc(100% - 30px),0 100%);margin-bottom:-24px;padding-bottom:70px;}

/* reveal — content is ALWAYS visible; entrance only adds a gentle lift, never hides */
/* 登場は transform のみ＝opacityは常に1。アニメ/JSが動かない環境でも必ず表示される（A-BiSUは外部.jsを配信しないため堅牢化） */
.reveal{animation:revealIn .7s ease;}
@keyframes revealIn{from{transform:translateY(18px);}to{transform:none;}}

/* ============ PAIN ============ */
.pains{display:flex;flex-direction:column;gap:11px;}
.pain{background:#fff;border:1px solid var(--line);border-radius:16px;padding:15px 16px 15px 52px;position:relative;box-shadow:var(--shadow-sm);font-size:.92rem;}
.pain .pq{position:absolute;left:14px;top:15px;width:26px;height:26px;border-radius:9px;
  background:linear-gradient(135deg,#ffb38a,#ff7a9c);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.9rem;box-shadow:0 6px 14px -6px rgba(255,122,156,.7);}
.pain b{color:var(--blue);}
.turn{display:flex;align-items:center;gap:10px;justify-content:center;text-align:center;font-size:1.05rem;font-weight:900;margin-top:20px;
  color:var(--navy);background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:var(--shadow-sm);}
.turn .ar{flex:none;width:30px;height:30px;border-radius:50%;background:var(--grad-cool);color:#fff;display:flex;align-items:center;justify-content:center;}

/* ============ METHOD CARDS ============ */
.method{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;}
.mcard{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px 14px;text-align:center;
  box-shadow:var(--shadow-sm);position:relative;overflow:hidden;}
.mcard .badge{width:50px;height:50px;border-radius:15px;margin:0 auto 10px;display:flex;align-items:center;justify-content:center;
  font-size:1.5rem;color:#fff;background:var(--grad-cool);box-shadow:0 10px 20px -8px rgba(44,95,141,.6);}
.mcard:nth-child(2) .badge,.mcard:nth-child(4) .badge{background:var(--grad-cta);box-shadow:0 10px 20px -8px rgba(232,155,60,.6);}
.mcard .t{font-weight:900;color:var(--navy);margin:2px 0 4px;font-size:1.02rem;}
.mcard .d{font-size:.78rem;color:var(--mut);line-height:1.6;}
.mcard .no{position:absolute;top:8px;right:12px;font-family:'Montserrat';font-weight:900;font-size:1.1rem;color:var(--line);}

/* ============ FLOW ============ */
.flow{display:flex;flex-direction:column;gap:0;position:relative;}
.fstep{display:flex;gap:14px;align-items:flex-start;position:relative;padding-bottom:18px;}
.fstep:last-child{padding-bottom:0;}
.fstep .rail{flex:none;display:flex;flex-direction:column;align-items:center;}
.fstep .num{font-family:'Montserrat';font-weight:900;font-size:.86rem;color:#fff;
  background:var(--grad-cta);width:38px;height:38px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;box-shadow:0 8px 18px -6px rgba(232,155,60,.7);z-index:2;}
.fstep .line{flex:1;width:2px;background:linear-gradient(180deg,rgba(255,255,255,.3),rgba(255,255,255,.05));margin:4px 0;}
.fstep:last-child .line{display:none;}
.fstep .fbody{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:16px;padding:13px 16px;flex:1;backdrop-filter:blur(4px);}
.fstep .fbody b{display:flex;align-items:center;gap:8px;color:#fff;font-size:1rem;}
.fstep .fbody b .ic{color:var(--orange-br);}
.fstep .fbody span{font-size:.8rem;color:rgba(255,255,255,.72);}
.flowtime{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:18px;color:rgba(255,255,255,.72);font-size:.84rem;font-weight:700;}

/* ============ EVIDENCE ============ */
.ev-card{background:#fff;border-radius:22px;padding:20px 18px;box-shadow:var(--shadow);border:1px solid var(--line);position:relative;}
.ev-card > svg{width:100%;height:auto;display:block;}
.ev-cap{display:inline-flex;align-items:center;gap:6px;font-size:.72rem;font-weight:800;color:var(--blue);background:var(--soft);border-radius:20px;padding:4px 12px;margin-bottom:8px;}
.ev-legend{display:flex;flex-wrap:wrap;gap:7px 16px;margin:2px 0 14px;font-size:.74rem;font-weight:700;color:#52616e;}
.ev-legend span{display:inline-flex;align-items:center;gap:7px;}
.ev-legend i{width:12px;height:12px;border-radius:4px;flex:none;}
.punch{margin-top:14px;text-align:center;font-size:1.12rem;font-weight:900;color:var(--navy);line-height:1.55;}
.punch .hl{position:relative;background:linear-gradient(transparent 62%,#ffe0b8 62%);padding:0 2px;}
.evnote{text-align:center;font-size:.72rem;color:var(--mut);margin-top:12px;}
.imgph{background:repeating-linear-gradient(135deg,#eef4fa,#eef4fa 10px,#e6eef7 10px,#e6eef7 20px);
  border:1.5px dashed #b9cee0;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:#86a0b6;text-align:center;padding:18px;}
.imgph .pcap{font-family:'Montserrat';font-size:.66rem;letter-spacing:.08em;font-weight:700;}
.imgph .psub{font-size:.7rem;}

/* ============ GAIN ============ */
.gains{display:flex;flex-direction:column;gap:11px;}
.gcard{background:#fff;border-radius:16px;padding:16px;border:1px solid var(--line);display:flex;gap:13px;box-shadow:var(--shadow-sm);align-items:flex-start;}
.gcard .gn{flex:none;width:46px;height:46px;border-radius:13px;color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.3rem;background:var(--grad-cool);}
.gcard:nth-child(even) .gn{background:var(--grad-cta);}
.gcard .gt{font-weight:900;color:var(--navy);font-size:1.02rem;display:flex;align-items:center;gap:8px;}
.gcard .gt .gi{font-family:'Montserrat';font-size:.78rem;color:var(--orange);}
.gcard .gd{font-size:.82rem;color:var(--mut);margin-top:3px;line-height:1.6;}

/* ============ GAMIFICATION ============ */
.fun{background:linear-gradient(150deg,#fff4e6 0%,#ffeaf0 60%,#fff1e6 100%);position:relative;overflow:hidden;}
.fun .sticker{position:absolute;font-size:1.6rem;opacity:.5;animation:float 8s ease-in-out infinite;}
.passport{background:#fff;border-radius:22px;padding:20px;box-shadow:var(--shadow);border:2px solid #ffe1c0;position:relative;}
.passport .ptop{display:flex;align-items:center;gap:10px;margin-bottom:6px;}
.passport .ptop .pi{width:38px;height:38px;border-radius:11px;background:var(--grad-cta);display:flex;align-items:center;justify-content:center;font-size:1.2rem;}
.passport .ptop b{color:var(--navy);font-size:1.02rem;font-weight:900;display:block;}
.passport .ptop small{color:var(--orange);font-weight:800;font-size:.72rem;}
.pname{margin-left:auto;font-family:'Montserrat';font-weight:900;font-size:.78rem;color:var(--orange);background:#fff3e2;padding:4px 10px;border-radius:20px;}
.stamps{display:grid;grid-template-columns:repeat(6,1fr);gap:9px;margin:16px 0;}
.stamp{aspect-ratio:1;border-radius:50%;border:2px dashed #e7c89c;display:flex;align-items:center;justify-content:center;
  font-size:1.05rem;color:#cdb38c;background:#fffaf2;}
html.seen .stamp{opacity:1 !important;transform:none !important;}
.stamp.on{background:linear-gradient(135deg,var(--orange),var(--orange-br));border-style:solid;border-color:transparent;
  color:#fff;box-shadow:0 8px 16px -8px rgba(232,155,60,.7);}
html.js .reveal.in .stamp{animation:pop .5s cubic-bezier(.2,1.4,.5,1) forwards;}
.reveal.in .stamp:nth-child(1){animation-delay:.05s}.reveal.in .stamp:nth-child(2){animation-delay:.12s}
.reveal.in .stamp:nth-child(3){animation-delay:.19s}.reveal.in .stamp:nth-child(4){animation-delay:.26s}
.reveal.in .stamp:nth-child(5){animation-delay:.33s}.reveal.in .stamp:nth-child(6){animation-delay:.4s}
.reveal.in .stamp:nth-child(7){animation-delay:.47s}.reveal.in .stamp:nth-child(8){animation-delay:.54s}
.reveal.in .stamp:nth-child(9){animation-delay:.61s}.reveal.in .stamp:nth-child(10){animation-delay:.68s}
.reveal.in .stamp:nth-child(11){animation-delay:.75s}.reveal.in .stamp:nth-child(12){animation-delay:.82s}
@keyframes pop{to{transform:scale(1);opacity:1}}
.meter{height:14px;border-radius:9px;background:#f3e6d4;overflow:hidden;margin:4px 0;}
.meter i{display:block;height:100%;width:0;border-radius:9px;background:linear-gradient(90deg,var(--orange),var(--orange-br),var(--pink));transition:width 1.5s cubic-bezier(.2,.8,.2,1) .3s;}
html.js .reveal.in .meter i{width:62%;}
html.seen .meter i{width:62%;}
.ranks{display:flex;justify-content:space-between;font-size:.68rem;color:#b09c82;font-weight:800;margin-top:6px;}
.ranks .now{color:var(--orange);}
.fun-cap{display:flex;align-items:center;gap:8px;justify-content:center;text-align:center;margin-top:18px;font-weight:900;color:var(--navy);font-size:1.02rem;}

/* ============ INFO / FEE ============ */
.infocards{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:16px;}
.ic2{background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px 6px;text-align:center;box-shadow:var(--shadow-sm);}
.ic2 .ii{width:34px;height:34px;border-radius:10px;margin:0 auto 7px;display:flex;align-items:center;justify-content:center;background:var(--soft);color:var(--blue);font-size:1.05rem;}
.ic2 .it{font-weight:800;color:var(--mut);font-size:.7rem;}
.ic2 .iv{font-weight:900;font-size:.92rem;color:var(--navy);margin-top:1px;}
.ic2 .is{font-size:.66rem;color:#9fb2c2;}
.fee{background:#fff;border-radius:18px;overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--line);}
.fee .fh{background:linear-gradient(120deg,var(--blue),var(--navy2));color:#fff;padding:14px 18px;font-weight:900;font-size:1rem;display:flex;align-items:center;gap:8px;}
.fee table{width:100%;border-collapse:collapse;}
.fee td{padding:13px 18px;border-bottom:1px solid var(--line);font-size:.9rem;}
.fee tr:last-child td{border-bottom:none;}
.fee .price{font-family:'Montserrat';font-weight:900;font-size:1.2rem;color:var(--orange);}
.fee .fn{padding:11px 18px;font-size:.72rem;color:var(--mut);background:#fafcff;}
.fee .fn a{color:var(--blue);}

/* ============ GROWTH (dark) ============ */
.grows{display:grid;grid-template-columns:repeat(2,1fr);gap:11px;}
.gw{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:16px;padding:16px 12px;text-align:center;backdrop-filter:blur(4px);}
.gw .ic{color:var(--orange-br);font-size:1.5rem;}
.gw .t{font-weight:900;margin:7px 0 3px;font-size:.96rem;}.gw .d{font-size:.74rem;opacity:.78;line-height:1.55;}
.cartph{margin-top:14px;}

/* ============ VOICE ============ */
.voices{display:flex;flex-direction:column;gap:12px;}
.vc{background:#fff;border-radius:16px;padding:16px 16px 16px 18px;box-shadow:var(--shadow-sm);border:1px solid var(--line);position:relative;}
.vc .av{display:flex;align-items:center;gap:10px;margin-bottom:8px;}
.vc .avph{width:38px;height:38px;border-radius:50%;background:var(--soft);border:1.5px dashed #b9cee0;flex:none;display:flex;align-items:center;justify-content:center;color:#86a0b6;font-size:.95rem;}
.vc .who{font-size:.76rem;color:var(--mut);font-weight:800;}
.vc .stars{margin-left:auto;color:var(--orange);font-size:.78rem;letter-spacing:1px;}
.vc p{margin:0;font-size:.88rem;color:#3c4d5c;line-height:1.7;}

/* ============ FAQ ============ */
.faqs{display:flex;flex-direction:column;gap:9px;}
.fitem{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:var(--shadow-sm);}
.fitem summary{cursor:pointer;padding:14px 16px;font-weight:800;color:var(--navy);list-style:none;display:flex;gap:10px;align-items:center;font-size:.9rem;}
.fitem summary::-webkit-details-marker{display:none;}
.fitem summary .q{font-family:'Montserrat';background:var(--grad-cta);color:#fff;font-weight:900;width:24px;height:24px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex:none;font-size:.8rem;}
.fitem summary .plus{margin-left:auto;color:var(--orange);font-size:1.3rem;font-weight:400;transition:transform .25s;line-height:1;}
.fitem[open] summary .plus{transform:rotate(45deg);}
.fitem .a{padding:0 16px 15px 50px;color:#475a69;font-size:.84rem;line-height:1.7;}

/* ============ RELATED ============ */
.rels{display:grid;grid-template-columns:repeat(2,1fr);gap:11px;}
.rel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:15px;text-decoration:none;color:var(--ink);box-shadow:var(--shadow-sm);transition:transform .15s;}
.rel:active{transform:scale(.98);}
.rel .ri{width:34px;height:34px;border-radius:10px;background:var(--soft);color:var(--blue);display:flex;align-items:center;justify-content:center;margin-bottom:8px;font-size:1rem;}
.rel .rt{font-weight:900;color:var(--navy);margin-bottom:2px;font-size:.92rem;}
.rel .rd{font-size:.74rem;color:var(--mut);}

/* ============ FINAL CTA ============ */
.final{background:var(--grad-hero);color:#fff;text-align:center;padding:60px 22px 40px;position:relative;overflow:hidden;}
.final .orb{position:absolute;border-radius:50%;opacity:.45;animation:float 8s ease-in-out infinite;}
.final h2{color:#fff;font-size:1.5rem;}
.final .lead{color:rgba(255,255,255,.85);}
.final .micro{opacity:.78;font-size:.74rem;margin-top:12px;}
.foot{padding:22px;text-align:center;color:#7d93a6;font-size:.7rem;background:var(--navy);line-height:1.7;}

/* sticky mobile CTA */
.sticky-cta{position:sticky;bottom:0;z-index:60;background:rgba(12,29,48,.92);backdrop-filter:blur(10px);padding:10px 16px;text-align:center;border-top:1px solid rgba(255,255,255,.08);}
.sticky-cta a{background:var(--grad-cta);color:#fff;font-weight:900;padding:12px 26px;border-radius:30px;text-decoration:none;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 10px 22px -8px rgba(232,155,60,.7);font-size:.95rem;}

/* ============ CREDO / 想い (dark, quiet) ============ */
.credo{background:radial-gradient(820px 460px at 50% -12%,#2a1630 0%,transparent 62%),linear-gradient(170deg,#171231,#0c1d30 60%,#0e2236);color:#fff;position:relative;overflow:hidden;padding:60px 22px;}
.credo .eyebrow{color:var(--orange-br);}
.credo-lead{font-size:1.6rem;font-weight:900;line-height:1.5;text-align:center;letter-spacing:.01em;margin:0 auto 8px;max-width:22em;}
.credo-lead .hl{background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:transparent;}
.credo-sub{text-align:center;color:rgba(255,255,255,.7);font-weight:700;font-size:.82rem;margin:0 0 24px;}
.credo-author{display:flex;align-items:center;gap:12px;justify-content:center;margin-bottom:20px;}
.credo-author .face{width:66px;height:66px;border-radius:50%;flex:none;overflow:hidden;border:2px solid rgba(255,255,255,.35);box-shadow:0 6px 16px -6px rgba(0,0,0,.5);}
.credo-author .face img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block;}
.credo-author .face .pcap{font-family:'Montserrat';font-size:.42rem;letter-spacing:.06em;margin-top:1px;}
.credo-author .who b{display:block;font-size:.96rem;font-weight:900;}
.credo-author .who span{font-size:.72rem;color:rgba(255,255,255,.65);font-weight:700;}
.letter{background:#fff;color:var(--ink);border-radius:20px;padding:22px 20px;box-shadow:var(--shadow);line-height:1.95;font-size:.92rem;}
.letter h3{font-size:1.12rem;font-weight:900;color:var(--navy);margin:0 0 4px;line-height:1.5;}
.letter .by{font-size:.74rem;color:var(--mut);font-weight:700;margin:0 0 14px;}
.letter p{margin:0 0 13px;}
.letter b{color:var(--blue);}
.letter .ask{background:var(--soft);border-left:3px solid var(--orange);border-radius:0 12px 12px 0;padding:11px 14px;font-weight:800;color:var(--navy);font-size:.9rem;line-height:1.7;}
.letter .pull{font-size:1.16rem;font-weight:900;color:var(--navy);line-height:1.55;text-align:center;margin:18px 0;}
.letter .pull .hl{background:linear-gradient(transparent 60%,#ffe0b8 60%);}
.letter .sign{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:16px;font-weight:900;color:var(--navy);font-size:.86rem;}
.letter .sign{flex-wrap:wrap;}
.letter .sign .sg{font-family:'Yuji Syuku','Yu Mincho','Hiragino Mincho ProN',serif;font-weight:400;font-style:normal;font-size:1.75rem;color:#26323d;border-bottom:2px solid #ffd9ad;padding:0 8px 3px;letter-spacing:.12em;line-height:1.15;}
.credo-cta{margin-top:22px;text-align:center;}
.credo-cta .btn-main{max-width:330px;margin:0 auto;}
.credo-cta .micro-link{display:inline-block;margin-top:12px;color:rgba(255,255,255,.85);font-weight:800;font-size:.84rem;text-decoration:underline;text-underline-offset:3px;}
.credo-cta .ai{margin-top:14px;color:rgba(255,255,255,.6);font-size:.74rem;font-weight:700;}
.trycard{background:linear-gradient(120deg,var(--blue),var(--navy2));color:#fff;border-radius:18px;padding:18px;text-align:center;margin-top:18px;box-shadow:var(--shadow);}
.trycard b{display:block;font-size:1.06rem;font-weight:900;margin-bottom:5px;}
.trycard span{font-size:.82rem;color:rgba(255,255,255,.82);line-height:1.6;}

/* ============ WHY (単なる読書ではない) ============ */
.whys{display:flex;flex-direction:column;gap:11px;}
.why{background:#fff;border:1px solid var(--line);border-radius:16px;padding:15px 16px 15px 54px;position:relative;box-shadow:var(--shadow-sm);font-size:.9rem;line-height:1.72;}
.why .wn{position:absolute;left:14px;top:14px;width:28px;height:28px;border-radius:9px;background:var(--grad-cool);color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Montserrat';font-weight:900;font-size:.82rem;}
.why b{color:var(--blue);}
.cite{margin-top:14px;background:var(--navy);color:#fff;border-radius:16px;padding:16px 18px;display:flex;gap:12px;align-items:flex-start;box-shadow:var(--shadow);}
.cite .ci{flex:none;color:var(--orange-br);font-size:1.4rem;}
.cite p{margin:0;font-size:.88rem;line-height:1.7;}
.cite .src{display:block;margin-top:5px;font-size:.72rem;color:rgba(255,255,255,.6);font-weight:700;}
.why-turn{margin-top:14px;text-align:center;font-weight:900;color:var(--navy);font-size:1rem;line-height:1.6;}
.why-turn .hl{background:linear-gradient(transparent 60%,#ffe0b8 60%);}

/* ---- MOOD: SUNSET (warm plum→orange→pink) ---- */
[data-mood="sunset"]{
  --navy:#3a1740; --navy2:#5a2150; --blue:#c0497e; --blue-br:#e07ba0; --cyan:#ff9d6c;
  --orange:#ff7e54; --orange-br:#ffb347; --pink:#ff6f91;
  --grad-hero:radial-gradient(900px 520px at 82% -8%, #7a2f5e 0%, transparent 58%),
              radial-gradient(720px 460px at -5% 32%, #b34b3f 0%, transparent 55%),
              linear-gradient(165deg,#2a1030,#5a1f44 60%,#8a3346);
  --grad-cool:linear-gradient(120deg,#ff7e54,#ff6f91);
  --grad-text:linear-gradient(100deg,#ffe08a,#ff9d6c 55%,#ff6f91);
}
/* ---- MOOD: FOREST (deep green + teal + gold) ---- */
[data-mood="forest"]{
  --navy:#0d2620; --navy2:#13362c; --blue:#2f8f6b; --blue-br:#4fbf93; --cyan:#5bd6c0;
  --orange:#e3a542; --orange-br:#f5c46a;
  --grad-hero:radial-gradient(900px 520px at 82% -8%, #1d5f47 0%, transparent 58%),
              radial-gradient(720px 460px at -5% 32%, #15543f 0%, transparent 55%),
              linear-gradient(165deg,#0a1f18,#10402f 64%,#155039);
  --grad-cool:linear-gradient(120deg,#2f8f6b,#5bd6c0);
  --grad-text:linear-gradient(100deg,#ffe08a,#f5c46a 55%,#5bd6c0);
}

/* ---- MOTION ---- */
[data-motion="calm"] .orb,[data-motion="calm"] .floaticon,[data-motion="calm"] .sticker{opacity:0 !important;animation:none !important;}
[data-motion="lively"] .orb{opacity:.85 !important;animation-duration:6s !important;}
[data-motion="lively"] .floaticon{opacity:.95 !important;animation-duration:5s !important;font-size:1.85rem !important;}
[data-motion="lively"] .sticker{opacity:.7 !important;animation-duration:6s !important;}
[data-motion="lively"] .btn-main{animation:ctaPulse 2.4s ease-in-out infinite;}
@keyframes ctaPulse{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-3px) scale(1.015)}}
@media(prefers-reduced-motion:reduce){[data-motion="lively"] .btn-main{animation:none;}}

/* ---- FORM: roundness ---- */
[data-form="round"] :is(.mcard,.gcard,.vc,.fitem,.fee,.stat,.passport,.ev-card,.rel,.ic2,.pain,.fstep .fbody,.gw,.turn,.lvchip,.imgph){border-radius:26px !important;}
[data-form="round"] :is(.nav-cta,.btn-main,.btn-ghost,.sticky-cta a,.kicker,.ev-cap,.pname,.fee .fh){border-radius:40px !important;}
[data-form="round"] :is(.mcard .badge,.gcard .gn,.ic2 .ii){border-radius:50% !important;}
[data-form="sharp"] :is(.mcard,.gcard,.vc,.fitem,.fee,.stat,.passport,.ev-card,.rel,.ic2,.pain,.fstep .fbody,.gw,.turn,.lvchip,.imgph,.nav-cta,.btn-main,.btn-ghost,.sticky-cta a,.kicker,.mcard .badge,.gcard .gn,.ic2 .ii,.fee .fh,.ev-cap,.pname){border-radius:4px !important;}