/* 恋するペンギン診断：一覧／図鑑／個別ページ 共通スタイル */
:root{--pink:#ff8fb0;--pink-d:#e0668c;--pink-soft:#ffdfe9;--pink-bg:#fff4f8;--cream:#fcf6ee;
  --ink:#5b525c;--ink-soft:#9b909c;--line:#f1e4ea;--blue:#9aa8ef;--green:#74b58f;--amber:#e7b75a;}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{margin:0;padding:0;}
body{font-family:"Zen Maru Gothic","Hiragino Maru Gothic ProN","Hiragino Sans",-apple-system,sans-serif;
  color:var(--ink);background:linear-gradient(180deg,#fff3f6 0%,#f3eefb 45%,#eafaf4 100%);
  background-attachment:fixed;min-height:100vh;line-height:1.85;}
.wrap{max-width:640px;margin:0 auto;padding:0 16px 70px;}
a{color:var(--pink-d);}
@keyframes bob{0%,100%{transform:translateY(0);}50%{transform:translateY(-6px);}}
.peng-float{animation:bob 2.8s ease-in-out infinite;}
.topbar{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.82);backdrop-filter:blur(8px);
  margin:0 -16px;padding:10px 16px;display:flex;gap:14px;align-items:center;overflow-x:auto;border-bottom:1px solid var(--line);}
.topbar a{color:var(--ink-soft);font-size:13px;font-weight:700;text-decoration:none;white-space:nowrap;}
.topbar a.brand{color:var(--pink-d);font-family:"Mochiy Pop One",sans-serif;}
.crumbs{font-size:12px;color:var(--ink-soft);margin:16px 2px 4px;}
.crumbs a{color:var(--pink-d);text-decoration:none;}
h1{font-size:24px;font-weight:400;margin:6px 0;text-align:center;font-family:"Mochiy Pop One","Zen Maru Gothic",sans-serif;}
.lead{font-size:14px;text-align:center;color:var(--ink-soft);margin:8px 2px 0;}
.sec-h{font-size:19px;font-weight:400;margin:30px 0 12px;text-align:center;color:var(--pink-d);font-family:"Mochiy Pop One","Zen Maru Gothic",sans-serif;}
.sec-h small{display:block;font-size:11px;letter-spacing:3px;color:var(--ink-soft);font-weight:700;}
.card{background:#fff;border-radius:26px;padding:24px 20px;box-shadow:0 12px 34px rgba(190,150,170,.16);margin-top:14px;}
.badge{display:inline-block;background:var(--pink-soft);color:var(--pink-d);font-size:12px;font-weight:700;padding:5px 14px;border-radius:999px;}
.btn{display:block;width:100%;border:none;cursor:pointer;background:var(--pink);color:#fff;font-weight:700;font-size:16px;
  padding:15px;border-radius:999px;font-family:inherit;text-decoration:none;text-align:center;box-shadow:0 8px 18px rgba(255,143,176,.45);}
.btn.ghost{background:#fff;color:var(--pink-d);border:2px solid var(--pink-soft);box-shadow:none;}
.foot{text-align:center;color:var(--ink-soft);font-size:11px;margin-top:26px;line-height:2.1;}
.foot a{color:var(--pink-d);text-decoration:none;}
/* 一覧グリッド */
.kp-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:16px;}
.kp-card{background:#fff;border-radius:20px;padding:14px 10px 16px;text-align:center;box-shadow:0 8px 20px rgba(190,150,170,.12);
  display:flex;flex-direction:column;align-items:center;gap:2px;text-decoration:none;color:var(--ink);transition:transform .12s;}
.kp-card:active{transform:scale(.97);}
.kp-pc{width:88px;height:88px;border-radius:50%;background:#faf5f0;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.kp-pc img,.kp-pc svg{width:78px;height:auto;}
.kp-no{font-size:10.5px;letter-spacing:1px;color:var(--pink-d);font-weight:700;margin-top:6px;}
.kp-nm{font-size:14px;font-weight:700;}
.kp-cd{font-size:10px;letter-spacing:1.5px;color:var(--ink-soft);}
.kp-ct{font-size:11px;color:var(--ink-soft);line-height:1.5;margin-top:3px;}
/* 図鑑グリッド */
.kp-zgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:16px;}
.kp-zcard{position:relative;background:#fff;border-radius:20px;padding:18px 10px 14px;text-align:center;text-decoration:none;color:var(--ink);
  box-shadow:0 8px 20px rgba(190,150,170,.12);display:flex;flex-direction:column;align-items:center;gap:2px;border-top:5px solid var(--c);transition:transform .12s;}
.kp-zcard:active{transform:scale(.97);}
.kp-zno{position:absolute;top:8px;left:10px;font-size:10px;font-weight:700;color:#fff;background:var(--c);border-radius:999px;padding:2px 8px;}
.kp-zpc{width:92px;height:92px;border-radius:50%;background:#faf5f0;display:flex;align-items:center;justify-content:center;overflow:hidden;margin-top:4px;}
.kp-zpc img,.kp-zpc svg{width:82px;height:auto;}
.kp-znm{font-size:14px;font-weight:700;margin-top:5px;}
.kp-zsp{font-size:11px;color:var(--pink-d);font-weight:700;}
.kp-zcd{font-size:10px;letter-spacing:1.5px;color:var(--ink-soft);}
.kp-ztag{font-size:11.5px;font-weight:700;color:var(--pink-d);line-height:1.45;margin-top:6px;padding:0 4px;}
/* 図鑑：キャラクタープロフィール（1列レイアウト） */
.kp-zlist{display:flex;flex-direction:column;gap:12px;margin-top:18px;}
.kp-zcard2{position:relative;display:flex;gap:14px;align-items:center;background:#fff;border-radius:18px;padding:14px 16px;
  text-decoration:none;color:var(--ink);box-shadow:0 8px 20px rgba(190,150,170,.12);border-left:6px solid var(--c);transition:transform .12s;}
.kp-zcard2:active{transform:scale(.99);}
.kp-zcard2 .kp-zno{left:auto;right:12px;}
.kp-zthumb{flex:0 0 78px;width:78px;height:78px;border-radius:50%;background:#faf5f0;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.kp-zthumb img,.kp-zthumb svg{width:70px;height:auto;}
.kp-zbody{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.kp-zname{font-size:15px;font-weight:700;}
.kp-zcard2 .kp-ztag{margin-top:1px;margin-bottom:3px;padding:0;font-size:11.5px;}
.kp-zrow{font-size:12px;color:var(--ink);line-height:1.6;}
.kp-zrow b{display:inline-block;min-width:54px;color:var(--pink-d);font-size:10.5px;font-weight:700;margin-right:4px;}
.kp-zfact{font-size:11.5px;color:var(--ink-soft);line-height:1.55;margin-top:3px;}
.kp-zmore{font-size:11px;font-weight:700;color:var(--pink-d);margin-top:6px;}
/* 個別ページ */
.t-head{text-align:center;}
.t-peng img,.t-peng svg{width:150px;height:auto;}
.t-num{color:var(--pink-d);font-weight:700;font-size:13px;margin-top:6px;}
.t-head h1{margin:4px 0 2px;font-size:26px;color:var(--ink);}
.code-badge{display:inline-block;margin:8px 0 2px;font-weight:700;font-size:20px;letter-spacing:5px;color:#6a6276;
  background:#f4f0fb;border:1.5px solid #e6e0f1;border-radius:12px;padding:5px 6px 5px 12px;}
.t-code-x{font-size:12px;color:var(--ink-soft);}
.tags{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:12px 0;}
.tag{background:var(--pink-bg);color:var(--pink-d);font-size:12px;font-weight:700;padding:6px 13px;border-radius:999px;}
.t-cat{font-size:14px;margin:6px 4px 0;}
h2.rh{font-size:16px;font-weight:700;margin:26px 0 8px;padding-left:11px;border-left:4px solid var(--pink);}
.gw-box{border-radius:14px;padding:13px 15px;font-size:14px;margin-top:8px;}
.gw-box .gw-h{display:block;font-weight:700;font-size:12px;margin-bottom:3px;}
.gw-box.good{background:var(--pink-bg);}.gw-box.good .gw-h{color:var(--pink-d);}
.gw-box.weak{background:#eef6f1;}.gw-box.weak .gw-h{color:var(--green);}
.match{display:flex;gap:13px;border-radius:18px;padding:14px 16px;margin:10px 0;align-items:flex-start;}
.match.best{background:var(--pink-bg);}.match.tough{background:#eef2fb;}
.match .mp{flex:none;width:60px;height:60px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.match .mp img,.match .mp svg{width:54px;height:auto;}
.m-tag{display:inline-block;font-size:11px;font-weight:700;padding:2px 9px;border-radius:999px;margin-bottom:3px;}
.m-tag.good{background:var(--pink-soft);color:var(--pink-d);}.m-tag.bad{background:#dde2f5;color:#4f5da0;}
.m-name{font-size:15px;font-weight:700;}.m-sp{color:var(--ink-soft);font-size:11px;margin-left:6px;}
.m-reason{font-size:13px;margin:5px 0 0;}
.advice{background:#fdf3df;border-radius:16px;padding:14px 16px;font-size:14px;margin-top:18px;}
.advice b{color:#b9852a;}
/* 相性ランキング */
.kp-clist{border-radius:16px;background:#fff;overflow:hidden;box-shadow:0 8px 20px rgba(190,150,170,.1);margin-top:6px;}
.kp-crow{display:flex;align-items:center;gap:10px;padding:9px 12px;border-bottom:1px solid var(--line);font-size:13px;text-decoration:none;color:var(--ink);}
.kp-crow:last-child{border-bottom:none;}
.kp-crk{flex:none;width:20px;font-weight:700;color:var(--ink-soft);font-size:12px;text-align:center;}
.kp-cpc{flex:none;width:36px;height:36px;border-radius:50%;background:#faf5f0;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.kp-cpc img,.kp-cpc svg{width:32px;height:auto;}
.kp-cnm{flex:1;font-weight:700;}.kp-cnm small{display:block;font-weight:400;color:var(--ink-soft);font-size:10px;letter-spacing:1px;}
.kp-cst{color:var(--amber);font-size:12px;letter-spacing:1px;flex:none;}
.kp-cpt{font-weight:700;color:var(--pink-d);width:44px;text-align:right;flex:none;}
/* シェア */
.kp-share{margin-top:16px;text-align:center;}
.kp-img-loading{padding:40px 0;color:var(--ink-soft);font-size:13px;}
.kp-sbtns{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap;}
.kp-sbtn{flex:1;min-width:90px;border:none;cursor:pointer;font-family:inherit;font-weight:700;font-size:14px;color:#fff;
  padding:13px 6px;border-radius:14px;display:flex;align-items:center;justify-content:center;gap:6px;}
.kp-sbtn.save{background:var(--pink);}.kp-sbtn.x{background:#111;}.kp-sbtn.line{background:#06c755;}
.kp-sbtn.img{background:#7c83c4;}.kp-sbtn.copy{background:#fff;color:var(--ink);border:2px solid var(--line);}
.toast{position:fixed;left:50%;bottom:30px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:10px 18px;
  border-radius:999px;font-size:13px;opacity:0;transition:opacity .3s;pointer-events:none;z-index:50;}
.toast.show{opacity:1;}
