:root{
  --ink:#1E1E2A; --sub:#5B6070; --line:#E6E8EE; --bg:#FFFFFF; --soft:#F4F6FA;
  --sky:#3FA9F5; --sky-deep:#2B8DD6; --type:#3FA9F5;
  --mk-marker:#FFD84D;
  --phone-w:390px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--sky);color:var(--ink);font-family:"Noto Sans JP",sans-serif;font-size:16px;line-height:1.9;letter-spacing:.02em;font-feature-settings:"palt"}
img{max-width:100%;display:block;height:auto}
button{font:inherit;color:inherit;cursor:pointer}
b,strong{font-weight:700}

/* ===== 舞台：PCはスマホ画面を中央に1枚置く ===== */
.stage{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0}
.stage__note{display:none}
.phone{position:relative;width:100%;height:100dvh;background:var(--bg);overflow:hidden}
@media (min-width:700px){
  .stage{padding:32px 16px 24px;background:radial-gradient(circle at 50% 10%, #5FBBFF 0, var(--sky) 60%)}
  .phone{width:var(--phone-w);height:min(844px, calc(100dvh - 72px));border-radius:40px;box-shadow:0 30px 60px rgba(0,0,0,.25), 0 0 0 10px #1E1E2A, 0 0 0 12px #3a3a48}
  .stage__note{display:block;margin:14px 0 0;color:#fff;font-size:13px;font-weight:700;letter-spacing:.06em;opacity:.9}
}

/* ===== ビュー切替 ===== */
.view{position:absolute;inset:0;overflow:hidden;background:var(--bg)}
.view[hidden]{display:none}

/* ===== LP スワイプ ===== */
.swiper{height:100%;overflow-y:auto;scroll-snap-type:y mandatory;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.swiper::-webkit-scrollbar{display:none}
.panel{height:100%;scroll-snap-align:start;scroll-snap-stop:always;padding:56px 20px 96px;display:flex;flex-direction:column;justify-content:center;gap:16px;position:relative}
.panel--fv{background:var(--sky);color:#fff;padding-top:48px}
.panel--2{background:var(--bg)}
.panel--3{background:var(--soft)}
.panel--4{background:var(--bg)}
.hud{position:absolute;top:14px;left:0;right:0;display:flex;justify-content:center;gap:8px;z-index:3}
.hud__dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.55);box-shadow:0 0 0 1px rgba(0,0,0,.08)}
.hud__dot.is-on{background:#fff;width:22px;border-radius:4px}
.view-lp.is-dark-hud .hud__dot{background:rgba(30,30,42,.25)}
.view-lp.is-dark-hud .hud__dot.is-on{background:var(--ink)}
.brand{display:inline-block;align-self:center;background:#fff;color:var(--ink);font-weight:900;font-size:14px;letter-spacing:.14em;padding:6px 16px;border-radius:999px}
.fv__h{margin:0;font-size:24px;line-height:1.5;font-weight:900;text-align:center;word-break:keep-all;overflow-wrap:anywhere;text-shadow:0 2px 0 rgba(0,0,0,.12)}
.fv__big{display:inline-block;font-size:34px;line-height:1.3;margin-top:6px}
.fv__group{margin:4px -20px;overflow:hidden}
.fv__group img{width:160%;max-width:none;margin-left:-30%;filter:drop-shadow(0 10px 0 rgba(0,0,0,.12))}
.fv__meta{margin:0;text-align:center;font-weight:700;font-size:15px;letter-spacing:.06em}
.fv__note{margin:0;text-align:center;font-size:12px;line-height:1.6;opacity:.85}
.panel--2 .fv__note,.panel--4 .fv__note{color:var(--sub);opacity:1}
.swipe-hint{position:absolute;left:0;right:0;bottom:70px;text-align:center;font-size:12px;letter-spacing:.1em;opacity:.8}
.swipe-hint::after{content:"";display:block;width:10px;height:10px;border-right:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(45deg);margin:4px auto 0;animation:hint 1.4s ease-in-out infinite}
@keyframes hint{0%,100%{transform:translateY(0) rotate(45deg)}50%{transform:translateY(6px) rotate(45deg)}}
@media (prefers-reduced-motion:reduce){.swipe-hint::after{animation:none}}
.panel__kicker{margin:0;font-size:13px;font-weight:700;letter-spacing:.14em;color:var(--sky-deep)}
.panel__h{margin:0;font-size:28px;line-height:1.4;font-weight:900;word-break:keep-all;overflow-wrap:anywhere}
.panel__p{margin:0;font-size:15px;line-height:1.8;color:var(--sub)}
.panel__p.small{font-size:12px}
.axes{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.axes li{display:flex;align-items:center;gap:12px;padding:12px 16px;border:1px solid var(--line);border-radius:16px;background:#fff}
.axes b{flex:0 0 64px;font-size:15px}
.axes span{font-size:15px;font-weight:700;color:var(--sky-deep)}
.panel__grid{width:200px;margin:0 auto}
.parts{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.parts li{display:flex;gap:14px;align-items:center;background:#fff;border-radius:16px;padding:12px 16px;border:1px solid var(--line)}
.parts b{flex:0 0 36px;height:36px;border-radius:50%;background:var(--sky);color:#fff;display:grid;place-items:center;font-size:16px}
.parts strong{display:block;font-size:16px}
.parts span{font-size:13px;color:var(--sub);line-height:1.5;display:block}
.panel__cards{display:flex;gap:12px;justify-content:center}
.panel__cards img{width:34%;border-radius:12px;box-shadow:0 8px 20px rgba(0,0,0,.12)}

/* ===== ボタン ===== */
.btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:58px;padding:0 20px;border:0;border-radius:999px;font-size:17px;font-weight:900;letter-spacing:.04em}
.btn--primary{background:var(--ink);color:#fff;box-shadow:0 6px 0 rgba(0,0,0,.18)}
.panel--fv .btn--primary{background:#fff;color:var(--ink)}
.btn--ghost{background:#fff;color:var(--ink);border:2px solid var(--ink);box-shadow:none}
.btn--type{background:var(--type);color:var(--ink)}
.btn--line{background:#06C755;color:#fff}
.btn--x{background:#000;color:#fff}
.btn--soft{background:var(--soft);color:var(--ink);box-shadow:none;min-height:52px;font-size:15px}
.sticky{position:absolute;left:0;right:0;bottom:0;padding:10px 16px calc(12px + env(safe-area-inset-bottom));background:linear-gradient(transparent,rgba(255,255,255,.9) 30%);transform:translateY(110%);transition:transform .4s var(--mk-ease,ease);z-index:4}
.sticky.is-shown{transform:translateY(0)}

/* ===== 診断 ===== */
.view-quiz{display:flex;flex-direction:column}
.qhead{padding:14px 16px 10px;display:grid;grid-template-columns:40px 1fr;gap:6px 10px;align-items:center;border-bottom:1px solid var(--line)}
.qhead__back{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:#fff;font-size:18px}
.qhead__back[disabled]{opacity:.3}
.qhead__part{display:flex;gap:10px;align-items:baseline;font-size:13px;color:var(--sub)}
.qhead__part b{font-size:15px;color:var(--ink)}
.qhead__bar{grid-column:1/-1;height:6px;border-radius:999px;background:var(--soft);overflow:hidden}
.qhead__bar i{display:block;height:100%;width:0;background:var(--sky);border-radius:999px;transition:width .5s var(--mk-ease,ease)}
.qbody{flex:1;overflow-y:auto;padding:20px 16px 32px;-webkit-overflow-scrolling:touch}
.q{animation:qin .5s var(--mk-ease,ease) both}
@keyframes qin{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.q{animation:none}}
.q__lead{margin:0 0 6px;font-size:13px;font-weight:700;color:var(--sky-deep);letter-spacing:.08em}
.q__text{margin:0 0 18px;font-size:24px;line-height:1.45;font-weight:900;word-break:keep-all;overflow-wrap:anywhere}
.q__hint{margin:-10px 0 14px;font-size:13px;color:var(--sub)}
.opts{display:grid;gap:10px}
.opt{display:flex;align-items:center;justify-content:center;min-height:58px;padding:12px 16px;border:2px solid var(--line);border-radius:18px;background:#fff;font-size:17px;font-weight:700;text-align:center;line-height:1.4;transition:transform .15s,border-color .15s,background .15s}
.opt:active{transform:scale(.98)}
.opt.is-on{border-color:var(--ink);background:var(--ink);color:#fff}
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tiles .opt{min-height:56px;font-size:15px;padding:10px 12px}
.tiles .opt.is-special{grid-column:1/-1;background:var(--soft);border-color:var(--soft)}
.tiles .opt.is-special.is-on{background:var(--ink);border-color:var(--ink)}
.tiles .opt.is-more{grid-column:1/-1;border-style:dashed;color:var(--sub);font-weight:700}
.tiles .opt[hidden]{display:none}
.chips{margin-top:12px;padding:14px;border-radius:16px;background:var(--soft)}
.chips__t{margin:0 0 8px;font-size:13px;font-weight:700;color:var(--sub)}
.chips__row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.chip{padding:8px 14px;border-radius:999px;border:1.5px solid var(--line);background:#fff;font-size:14px;font-weight:700}
.chip.is-on{background:var(--ink);border-color:var(--ink);color:#fff}
.chips input{width:100%;min-height:44px;border:1.5px solid var(--line);border-radius:12px;padding:0 12px;font:inherit;font-size:15px}
.chips__note{margin:6px 0 0;font-size:11px;color:var(--sub);line-height:1.5}
.q__next{margin-top:18px}
.q__skip{margin-top:10px;text-align:center}
.q__skip button{background:none;border:0;color:var(--sub);font-size:14px;text-decoration:underline}

/* ===== 結果 ===== */
.view-result{overflow-y:auto;-webkit-overflow-scrolling:touch;background:var(--type)}
.r-hero{position:relative;padding:20px 16px 0;text-align:center}
.r-hero .brand{margin-bottom:10px}
.r-hero__disc{position:relative;width:260px;height:260px;margin:0 auto;border-radius:50%;background:rgba(255,255,255,.92);display:grid;place-items:center}
.r-hero__disc img{width:230px;height:230px;object-fit:contain;filter:drop-shadow(0 8px 0 rgba(0,0,0,.10))}
.r-panel{margin:16px 12px 0;background:#fff;border-radius:28px;padding:22px 18px 18px;box-shadow:0 8px 0 rgba(0,0,0,.10)}
.r-pre{margin:0;text-align:center;font-size:13px;font-weight:700;color:var(--sub);letter-spacing:.08em}
.r-name{margin:2px 0 0;text-align:center;font-size:34px;font-weight:900;line-height:1.2;word-break:keep-all}
.r-poles{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:10px 0 0}
.r-poles span{font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;background:var(--type)}
.r-title{margin:14px 0 0;text-align:center;font-size:21px;font-weight:900;line-height:1.35}
.r-desc{margin:6px 0 0;text-align:center;font-size:14px;line-height:1.7;color:#3A3A48}
.r-strength{margin:10px 0 0;text-align:center;font-size:14px;font-weight:700;line-height:1.6}
.r-strength b{background:linear-gradient(transparent 55%,var(--type) 55%);padding:0 3px}
.r-sec{margin:12px 12px 0;background:#fff;border-radius:24px;padding:18px}
.r-sec h3{margin:0 0 10px;font-size:16px;font-weight:900;letter-spacing:.04em}
.aruaru{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.aruaru li{position:relative;padding:10px 12px 10px 38px;background:var(--soft);border-radius:14px;font-size:14px;line-height:1.6;font-weight:500}
.aruaru li::before{content:"";position:absolute;left:12px;top:14px;width:16px;height:16px;border-radius:50%;background:var(--type)}
.bars{display:grid;gap:10px}
.bar{display:grid;grid-template-columns:76px 1fr 48px;align-items:center;gap:10px;font-size:14px;font-weight:700}
.bar .track{height:14px;border-radius:999px;background:var(--soft);overflow:hidden}
.bar .fill{height:100%;width:0;border-radius:999px;background:var(--type);transition:width 1s var(--mk-ease,ease) .2s}
.bar .pct{text-align:right;font-variant-numeric:tabular-nums}
.bar .both{font-size:11px;color:var(--sub)}
.match{display:grid;gap:8px}
.match button{display:grid;grid-template-columns:56px 1fr;gap:12px;align-items:center;text-align:left;padding:8px 12px 8px 8px;border:1px solid var(--line);border-radius:16px;background:#fff}
.match img{width:56px;height:56px;object-fit:contain}
.match .k{display:block;font-size:12px;color:var(--sub);font-weight:700}
.match .v{display:block;font-size:15px;font-weight:900}
.match .w{display:block;font-size:12px;color:var(--sub);line-height:1.5}
.exit{display:grid;gap:10px}
.exit .btn{min-height:54px;font-size:15px}
.share-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ai-q{display:grid;gap:6px;margin-bottom:10px}
.ai-q label{display:flex;gap:10px;align-items:center;padding:10px 12px;border:1.5px solid var(--line);border-radius:14px;font-size:14px;font-weight:700}
.ai-q label.is-on{border-color:var(--ink);background:var(--soft)}
.ai-q input{accent-color:var(--ink)}
.r-note{margin:8px 0 0;font-size:11px;line-height:1.6;color:var(--sub)}
.r-foot{padding:18px 16px calc(28px + env(safe-area-inset-bottom));text-align:center;font-size:12px;line-height:1.7;color:rgba(0,0,0,.6)}
.r-foot a,.r-foot button{color:inherit;background:none;border:0;text-decoration:underline;font-size:12px;padding:0}
details.mk-acc summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-weight:900;font-size:16px}
details.mk-acc summary::-webkit-details-marker{display:none}
.hito{display:grid;grid-template-columns:64px 1fr;gap:12px;align-items:center;margin-top:12px}
.hito img{width:64px;height:64px;object-fit:contain}
.hito p{margin:0;background:var(--soft);border-radius:16px;padding:10px 14px;font-size:14px;line-height:1.6;font-weight:700}
.shared-cta{margin:12px 12px 0}
.grid16{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.grid16 button{border:0;background:#fff;border-radius:12px;padding:6px;display:grid;gap:2px;justify-items:center}
.grid16 img{width:100%;aspect-ratio:1;object-fit:contain}
.grid16 span{font-size:10px;font-weight:700;line-height:1.2;text-align:center}

/* ===== トースト ===== */
.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);background:var(--ink);color:#fff;padding:10px 18px;border-radius:999px;font-size:14px;font-weight:700;opacity:0;pointer-events:none;transition:.3s;z-index:50}
.toast.is-on{opacity:1;transform:translate(-50%,0)}
