/* ぷにょぷにょ（旧称もふれん・もふもふ連鎖パズル）2026-09-30 — 全画面・縦持ち優先。盤は canvas、ほかは DOM */
html,body{margin:0;height:100%;overflow:hidden;overscroll-behavior:none;background:#3a2748}
body.mfb{touch-action:manipulation;-webkit-text-size-adjust:100%}
.mf{position:fixed;inset:0;display:flex;justify-content:center;background:radial-gradient(120% 80% at 50% 0%,#5b3a6e 0%,#2e1f3b 70%);font-family:"M PLUS Rounded 1c","Hiragino Maru Gothic ProN","Zen Maru Gothic","BIZ UDPGothic","Hiragino Sans","Noto Sans JP",system-ui,sans-serif;color:#4a2c55;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}
.mf *{box-sizing:border-box}
.mf button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
.mf-app{position:relative;width:100%;max-width:560px;height:100%;overflow:hidden;background:linear-gradient(180deg,#fff4e2 0%,#ffe6ef 55%,#f3e4ff 100%)}
.mf-scr{position:absolute;inset:0;display:flex;flex-direction:column;padding:env(safe-area-inset-top,0px) 0 env(safe-area-inset-bottom,0px)}
.mf-boot{margin:auto;font-size:28px;font-weight:900;color:#ff7aa8;letter-spacing:.1em}

/* ---- 共通の部品 ---- */
.mf-btn{display:flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:18px;padding:12px 16px;font-weight:900;font-size:16px;background:#fff;color:#4a2c55;box-shadow:0 4px 0 #e2c9dc,0 6px 16px rgba(90,45,95,.12);transition:transform .08s}
.mf-btn:active{transform:translateY(3px);box-shadow:0 1px 0 #e2c9dc,0 2px 8px rgba(90,45,95,.12)}
.mf-btn.is-pri{background:linear-gradient(180deg,#ff8fb6,#ff5f98);color:#fff;box-shadow:0 4px 0 #d9407a,0 8px 18px rgba(255,95,152,.35);text-shadow:0 1px 0 rgba(160,30,80,.35)}
.mf-btn.is-pri:active{box-shadow:0 1px 0 #d9407a}
.mf-btn.is-sub{background:linear-gradient(180deg,#a58bff,#7c5cff);color:#fff;box-shadow:0 4px 0 #5d40d6,0 8px 18px rgba(124,92,255,.3)}
.mf-btn.is-sub:active{box-shadow:0 1px 0 #5d40d6}
.mf-btn.is-ghost{background:rgba(255,255,255,.7);box-shadow:0 3px 0 rgba(0,0,0,.08)}
.mf-btn[disabled]{opacity:.5;pointer-events:none}
.mf-x{position:absolute;top:10px;right:10px;width:40px;height:40px;border-radius:50%;border:0;background:rgba(255,255,255,.85);font-size:20px;font-weight:900;color:#8b6b95;box-shadow:0 2px 6px rgba(0,0,0,.12)}
.mf-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:99px;background:rgba(255,255,255,.8);font-size:12px;font-weight:800;color:#7b5c86}
.mf-note{font-size:12px;color:#8f7898;line-height:1.6;text-align:center;margin:8px 0 0}
.mf-a{color:#d9407a;font-weight:900}

/* ---- タイトル ---- */
.mf-title{justify-content:flex-start;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}
.mf-title__bg{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.mf-title__bg canvas{width:100%;height:100%;display:block}
.mf-title__top{position:relative;display:flex;justify-content:space-between;align-items:center;padding:10px 12px 0}
.mf-back{display:inline-flex;align-items:center;gap:4px;padding:7px 12px;border-radius:99px;background:rgba(255,255,255,.8);font-size:12.5px;font-weight:900;color:#7b5c86;text-decoration:none;box-shadow:0 2px 6px rgba(0,0,0,.08)}
.mf-iconbtn{width:40px;height:40px;border-radius:50%;border:0;background:rgba(255,255,255,.85);font-size:19px;box-shadow:0 2px 6px rgba(0,0,0,.1);display:flex;align-items:center;justify-content:center}
.mf-logo{position:relative;text-align:center;margin:clamp(6px,2.5vh,22px) 0 0}
.mf-logo__t{display:inline-block;font-size:clamp(38px,11.2vw,58px);font-weight:900;letter-spacing:.01em;line-height:1;color:#fff;-webkit-text-stroke:0;text-shadow:0 4px 0 #ff5f98,0 -2px 0 #ff5f98,3px 0 0 #ff5f98,-3px 0 0 #ff5f98,3px 4px 0 #ff5f98,-3px 4px 0 #ff5f98,0 9px 0 #d9407a,0 12px 18px rgba(217,64,122,.35);animation:mfLogo 2.6s ease-in-out infinite}
.mf-logo__t span{display:inline-block;animation:mfHop 2.6s ease-in-out infinite}
.mf-logo__t span:nth-child(2){animation-delay:.12s}.mf-logo__t span:nth-child(3){animation-delay:.24s}.mf-logo__t span:nth-child(4){animation-delay:.36s}.mf-logo__t span:nth-child(5){animation-delay:.48s}.mf-logo__t span:nth-child(6){animation-delay:.6s}
@keyframes mfHop{0%,70%,100%{transform:translateY(0)}78%{transform:translateY(-8px)}86%{transform:translateY(0) scaleY(.92)}}
@keyframes mfLogo{0%,100%{transform:rotate(-1.5deg)}50%{transform:rotate(1.5deg)}}
.mf-logo__s{display:block;margin-top:8px;font-size:13px;font-weight:900;color:#a0569a;letter-spacing:.18em}
.mf-faces{position:relative;display:flex;justify-content:center;gap:6px;margin:10px 0 2px;height:48px}
.mf-faces canvas{width:44px;height:44px;animation:mfBob 1.8s ease-in-out infinite}
.mf-faces canvas:nth-child(2){animation-delay:.2s}.mf-faces canvas:nth-child(3){animation-delay:.4s}.mf-faces canvas:nth-child(4){animation-delay:.6s}
@keyframes mfBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
.mf-me{position:relative;display:flex;align-items:center;gap:8px;margin:8px 14px 0;padding:8px 12px;border-radius:16px;background:rgba(255,255,255,.75);font-size:12.5px;font-weight:800;color:#6b4d76}
.mf-me img{width:34px;height:34px;border-radius:50%;background:#fff;object-fit:cover;flex:none}
.mf-me b{color:#4a2c55}
.mf-me__r{margin-left:auto;text-align:right;line-height:1.35}
.mf-modes{position:relative;display:grid;gap:10px;padding:12px 14px 6px}
.mf-mode{position:relative;display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:0;border-radius:22px;padding:12px 14px;background:#fff;box-shadow:0 5px 0 var(--sh,#f1c6d9),0 10px 20px rgba(90,45,95,.1);transition:transform .08s}
.mf-mode:active{transform:translateY(3px);box-shadow:0 2px 0 var(--sh,#f1c6d9)}
.mf-mode__i{flex:none;width:58px;height:58px;border-radius:18px;display:flex;align-items:center;justify-content:center;background:var(--bg,#ffe3ee)}
.mf-mode__i canvas,.mf-mode__i img{width:50px;height:50px;object-fit:contain}
.mf-mode__b{flex:1;min-width:0}
.mf-mode__n{display:block;font-size:17px;font-weight:900;color:#4a2c55}
.mf-mode__d{display:block;font-size:12px;color:#8a7394;margin-top:2px;line-height:1.45}
.mf-mode__r{flex:none;font-size:11px;font-weight:900;color:var(--ac,#ff5f98);text-align:right;line-height:1.3}
.mf-mode__rib{position:absolute;top:-7px;right:12px;padding:2px 9px;border-radius:99px;background:#ff5f98;color:#fff;font-size:10.5px;font-weight:900;box-shadow:0 2px 6px rgba(255,95,152,.4)}
.mf-mode.m-endless{--bg:#ffe3ee;--sh:#f5bcd3;--ac:#e04a86}
.mf-mode.m-cpu{--bg:#e8e1ff;--sh:#cfc2ff;--ac:#6a4be6}
.mf-mode.m-daily{--bg:#fff1c9;--sh:#f3dc97;--ac:#c48a00}
.mf-row{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:6px 14px 4px}
.mf-row .mf-btn{flex-direction:column;gap:2px;padding:9px 4px;font-size:11.5px;border-radius:16px}
.mf-row .mf-btn i{font-style:normal;font-size:20px;line-height:1.1}
.mf-foot{position:relative;text-align:center;font-size:11px;color:#a58fae;padding:8px 14px 18px;line-height:1.6}

/* ---- ゲーム画面 ---- */
.mf-game{background:transparent}
.mf-hd{flex:none;display:flex;align-items:center;gap:8px;height:52px;padding:0 10px;position:relative;z-index:3}
.mf-hd__p{flex:none;width:42px;height:42px;border-radius:14px;border:0;background:rgba(255,255,255,.85);box-shadow:0 3px 0 rgba(0,0,0,.08);font-size:17px;font-weight:900;color:#7b5c86;display:flex;align-items:center;justify-content:center;padding:0}
.mf-pzi{display:block;width:14px;height:16px;border-left:5px solid currentColor;border-right:5px solid currentColor;border-radius:2px;box-sizing:border-box}
.mf-hd__sc{flex:1;min-width:0;text-align:center;line-height:1.05}
.mf-hd__sc b{display:block;font-size:26px;font-weight:900;color:#4a2c55;font-variant-numeric:tabular-nums;letter-spacing:.02em}
.mf-hd__sc small{display:block;font-size:11px;font-weight:800;color:#a07aa8;min-height:13px}
.mf-hd__sc small.is-calc{color:#ff5f98}
.mf-hd__r{flex:none;min-width:58px;text-align:right;font-size:11px;font-weight:900;color:#8a6d94;line-height:1.35}
.mf-hd__r b{font-size:15px;color:#4a2c55}
.mf-goal{flex:none;margin:0 10px 4px;padding:6px 12px;border-radius:14px;background:#fff;box-shadow:0 3px 0 #f3dc97;font-size:14px;font-weight:900;color:#8a5a00;text-align:center;position:relative;z-index:3}
.mf-goal small{font-size:11px;color:#b48a3a;margin-left:6px}
.mf-stage{flex:1;min-height:0;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;gap:6px;padding:2px 8px;touch-action:none}
.mf-bd{position:relative;flex:none;border-radius:14px;box-shadow:0 0 0 3px #fff,0 0 0 6px rgba(255,143,182,.55),0 10px 24px rgba(74,44,85,.25);overflow:hidden;background:#fff}
.mf-bd canvas{display:block}
.mf-bd.is-cpu{box-shadow:0 0 0 2px #fff,0 0 0 4px rgba(124,92,255,.5),0 8px 18px rgba(74,44,85,.2)}
.mf-side{flex:none;display:flex;flex-direction:column;align-items:center;gap:6px;align-self:stretch;justify-content:flex-start;padding-top:4px}
.mf-side__h{font-size:10px;font-weight:900;letter-spacing:.12em;color:#a07aa8}
.mf-nx{border-radius:12px;background:rgba(255,255,255,.85);box-shadow:0 3px 0 rgba(0,0,0,.06);display:flex;align-items:center;justify-content:center}
.mf-nx canvas{display:block}
.mf-av{position:relative;margin-top:auto;margin-bottom:6px;display:flex;flex-direction:column;align-items:center}
.mf-av img{display:block;border-radius:50%;background:#fff;box-shadow:0 3px 8px rgba(0,0,0,.15);object-fit:cover}
.mf-av__n{margin-top:3px;font-size:10px;font-weight:900;color:#8a6d94;max-width:78px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mf-bubble{position:absolute;bottom:100%;left:50%;transform:translateX(-50%) scale(.6);margin-bottom:6px;padding:5px 9px;border-radius:12px;background:#fff;font-size:12px;font-weight:900;color:#e04a86;white-space:nowrap;box-shadow:0 3px 10px rgba(0,0,0,.15);opacity:0;transition:opacity .15s,transform .15s;pointer-events:none;z-index:4}
.mf-bubble::after{content:"";position:absolute;top:100%;left:50%;margin-left:-5px;border:5px solid transparent;border-top-color:#fff}
.mf-bubble.is-on{opacity:1;transform:translateX(-50%) scale(1)}
.mf-ctl{flex:none;display:grid;grid-template-columns:1fr 1.15fr 1.15fr 1.15fr 1fr;gap:7px;padding:6px 10px calc(8px + env(safe-area-inset-bottom,0px));position:relative;z-index:3}
.mf-ctl button{height:62px;border:0;border-radius:18px;background:#fff;box-shadow:0 4px 0 #e2c9dc;font-size:24px;font-weight:900;color:#7b5c86;display:flex;align-items:center;justify-content:center;touch-action:none}
.mf-ctl button.is-rot{background:linear-gradient(180deg,#ffb3cf,#ff8fb6);color:#fff;box-shadow:0 4px 0 #e0608f}
.mf-ctl button.is-down{background:linear-gradient(180deg,#c8b8ff,#a58bff);color:#fff;box-shadow:0 4px 0 #7c5cff}
.mf-ctl button.is-on{transform:translateY(3px);box-shadow:0 1px 0 #e2c9dc}
.mf-ctl button.is-rot.is-on{box-shadow:0 1px 0 #e0608f}
.mf-ctl button.is-down.is-on{box-shadow:0 1px 0 #7c5cff}
.mf-ctl button small{font-size:10px;display:block;margin-top:-2px}
.mf-ctl button span{display:flex;flex-direction:column;align-items:center;line-height:1}
.mf-rcol{flex:none;display:flex;flex-direction:column;align-items:center;gap:5px;align-self:stretch;padding-top:2px}
.mf-chead{position:relative;display:flex;flex-direction:column;align-items:center;max-width:100%}
.mf-chead img{display:block;border-radius:50%;background:#fff;box-shadow:0 3px 8px rgba(0,0,0,.15);object-fit:cover}
.mf-side.is-bt{flex:1;flex-direction:row;flex-wrap:wrap;justify-content:center;align-content:flex-start;gap:6px;padding-top:2px}
.mf-side.is-bt .mf-side__h{width:100%;text-align:center}
.mf-side.is-bt .mf-av{width:100%}
.mf-pzbar{flex:none;display:flex;gap:8px;justify-content:center;padding:0 10px 4px;position:relative;z-index:3}
.mf-pzbar .mf-btn{padding:7px 12px;font-size:12.5px;border-radius:14px}
@media (max-height:620px){
	.mf-hd{height:44px}.mf-hd__sc b{font-size:21px}.mf-hd__p{width:38px;height:38px}
	.mf-ctl button{height:52px;font-size:21px;border-radius:15px}
	.mf-ctl{padding-top:4px;gap:6px}
	.mf-goal{font-size:12.5px;padding:4px 10px}
}
@media (max-height:540px){.mf-ctl button{height:46px}}

/* ---- 重ねる画面（一時停止・結果・設定など） ---- */
.mf-ov{position:absolute;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(58,39,72,.55);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:mfFade .18s ease}
@keyframes mfFade{from{opacity:0}to{opacity:1}}
.mf-card{position:relative;width:100%;max-width:400px;max-height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;border-radius:26px;background:#fffaf4;padding:20px 16px 16px;box-shadow:0 18px 40px rgba(30,10,40,.35);animation:mfPop .25s cubic-bezier(.2,1.4,.4,1)}
@keyframes mfPop{from{transform:scale(.85);opacity:0}to{transform:scale(1);opacity:1}}
.mf-card h2{margin:0 0 10px;text-align:center;font-size:21px;font-weight:900;color:#4a2c55}
.mf-card h3{margin:14px 0 6px;font-size:13px;font-weight:900;color:#a07aa8;letter-spacing:.06em}
.mf-stack{display:grid;gap:10px}
.mf-res__big{text-align:center;margin:4px 0 2px}
.mf-res__big b{display:block;font-size:42px;font-weight:900;color:#ff5f98;font-variant-numeric:tabular-nums;line-height:1.1}
.mf-res__big small{font-size:12px;font-weight:900;color:#a07aa8}
.mf-new{display:inline-block;margin-top:4px;padding:3px 12px;border-radius:99px;background:linear-gradient(90deg,#ffcf3f,#ff8fb6);color:#fff;font-size:12px;font-weight:900;animation:mfBlink 1s ease-in-out infinite}
@keyframes mfBlink{50%{transform:scale(1.08)}}
.mf-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}
.mf-stats div{background:#fff;border-radius:14px;padding:8px 4px;text-align:center;box-shadow:0 2px 0 #f0dde8}
.mf-stats b{display:block;font-size:19px;font-weight:900;color:#4a2c55}
.mf-stats small{font-size:10.5px;font-weight:800;color:#a07aa8}
.mf-rk{margin:8px 0;padding:10px 12px;border-radius:14px;background:#f3eeff;font-size:13px;font-weight:800;color:#5d40d6;text-align:center;line-height:1.55}
.mf-rk.is-warn{background:#fff1e0;color:#b36a00}
.mf-rk a{color:#d9407a}
.mf-gift{margin:8px 0;padding:10px 12px;border-radius:14px;background:linear-gradient(90deg,#fff3c4,#ffe2ef);font-size:13.5px;font-weight:900;color:#a85b00;text-align:center}
.mf-2col{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.mf-winlose{text-align:center;font-size:44px;font-weight:900;line-height:1.1;margin:0 0 6px;color:#ff5f98;text-shadow:0 4px 0 #ffd0e1}
.mf-winlose.is-lose{color:#7c5cff;text-shadow:0 4px 0 #ddd3ff}
.mf-cpuhead{display:flex;justify-content:center;margin:0 0 6px}
.mf-cpuhead img{width:96px;height:96px;border-radius:50%;background:#fff;box-shadow:0 4px 12px rgba(0,0,0,.12);object-fit:cover}

/* CPU を選ぶ */
.mf-cpus{display:grid;gap:10px}
.mf-cpu{display:flex;align-items:center;gap:12px;border:0;width:100%;text-align:left;border-radius:20px;padding:10px 12px;background:#fff;box-shadow:0 4px 0 var(--sh),0 8px 16px rgba(90,45,95,.08)}
.mf-cpu:active{transform:translateY(3px);box-shadow:0 1px 0 var(--sh)}
.mf-cpu img{width:62px;height:62px;border-radius:50%;background:var(--bg);object-fit:cover;flex:none}
.mf-cpu b{display:block;font-size:16px;font-weight:900;color:#4a2c55}
.mf-cpu small{display:block;font-size:11.5px;color:#8a7394;line-height:1.45}
.mf-cpu em{font-style:normal;font-size:11px;font-weight:900;color:var(--ac);margin-left:auto;flex:none;text-align:right}
.mf-cpu.l1{--sh:#ffe08a;--bg:#fff5d6;--ac:#c48a00}.mf-cpu.l2{--sh:#ffc2d7;--bg:#ffe8f0;--ac:#e04a86}.mf-cpu.l3{--sh:#c9b8ff;--bg:#eee8ff;--ac:#6a4be6}
.mf-dan{text-align:center;margin:0 0 12px;font-size:13px;font-weight:900;color:#6a4be6}
.mf-dan b{font-size:20px}
.mf-bar{height:8px;border-radius:99px;background:#eee4f5;overflow:hidden;margin-top:4px}
.mf-bar i{display:block;height:100%;background:linear-gradient(90deg,#a58bff,#ff8fb6);border-radius:99px}

/* 毎日のお題 */
.mf-pzl{display:grid;gap:10px}
.mf-pz{display:flex;align-items:center;gap:10px;width:100%;border:0;text-align:left;border-radius:18px;padding:10px 12px;background:#fff;box-shadow:0 4px 0 #f3dc97}
.mf-pz:active{transform:translateY(3px);box-shadow:0 1px 0 #f3dc97}
.mf-pz canvas{flex:none;border-radius:8px;background:#fff7e6}
.mf-pz b{display:block;font-size:15px;font-weight:900;color:#4a2c55}
.mf-pz small{display:block;font-size:11.5px;color:#a0842e;font-weight:800}
.mf-pz .st{color:#ffb800;font-size:13px;letter-spacing:1px}
.mf-pz em{margin-left:auto;flex:none;font-style:normal;font-size:12px;font-weight:900;color:#c48a00;text-align:center}
.mf-pz.is-done{box-shadow:0 4px 0 #b8e6c4;background:#f3fff6}
.mf-pz.is-done em{color:#2f9d5a}

/* ランキング */
.mf-tabs{display:flex;gap:6px;justify-content:center;margin:0 0 10px}
.mf-tabs button{border:0;border-radius:99px;padding:7px 14px;font-size:12.5px;font-weight:900;background:#f1e8f5;color:#8a6d94}
.mf-tabs button.is-on{background:#ff5f98;color:#fff}
.mf-rl{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.mf-rl li{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:14px;background:#fff;font-size:13px;font-weight:800;box-shadow:0 2px 0 #f0e2ea}
.mf-rl li.is-me{background:#fff0f6;box-shadow:0 0 0 2px #ff8fb6}
.mf-rl .no{flex:none;width:26px;text-align:center;font-weight:900;color:#a07aa8}
.mf-rl li:nth-child(1) .no{color:#e0a800;font-size:16px}.mf-rl li:nth-child(2) .no{color:#9aa3b5;font-size:15px}.mf-rl li:nth-child(3) .no{color:#c77b3b;font-size:15px}
.mf-rl img{width:28px;height:28px;border-radius:50%;background:#f6eef9;object-fit:cover;flex:none}
.mf-rl .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#4a2c55}
.mf-rl .sc{flex:none;text-align:right;font-variant-numeric:tabular-nums;color:#4a2c55}
.mf-rl .sc small{display:block;font-size:10px;color:#a07aa8}
.mf-empty{padding:20px 8px;text-align:center;color:#a58fae;font-size:13px;font-weight:800}

/* 設定・きせかえ */
.mf-set{display:grid;gap:10px}
.mf-set label{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:800;color:#5c4066}
.mf-set label span{flex:none;width:84px}
.mf-set input[type=range]{flex:1;accent-color:#ff5f98}
.mf-tg{margin-left:auto;position:relative;width:52px;height:30px;border-radius:99px;border:0;background:#e6dcea;flex:none;transition:background .15s}
.mf-tg::after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:left .15s}
.mf-tg.is-on{background:#ff8fb6}.mf-tg.is-on::after{left:25px}
.mf-seg{margin-left:auto;display:flex;gap:4px}
.mf-seg button{border:0;border-radius:10px;padding:6px 10px;font-size:12px;font-weight:900;background:#f1e8f5;color:#8a6d94}
.mf-seg button.is-on{background:#7c5cff;color:#fff}
/* SGC1002 第2段 ぷにょの柄 */
.mf-pch{display:flex;align-items:center;gap:8px;margin:16px 0 8px;font-size:15px;font-weight:900;color:#4a2c55}
.mf-pch small{padding:1px 8px;border-radius:99px;background:#fff0f6;color:#e04a86;font-size:10.5px}
.mf-pcs{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.mf-pc{border:0;border-radius:16px;padding:6px 6px 8px;background:#fff;box-shadow:0 3px 0 #eadbe7;text-align:center}
.mf-pc.is-on{box-shadow:0 0 0 3px #ff8fb6,0 3px 0 #eadbe7}
.mf-pc img{display:block;width:100%;height:auto;aspect-ratio:132/100}
.mf-pc b{display:block;font-size:12.5px;font-weight:900;color:#4a2c55}
.mf-pc small{display:block;font-size:10.5px;font-weight:800;color:#a07aa8}
.mf-skins{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.mf-skin{position:relative;border:0;border-radius:16px;padding:0;overflow:hidden;background:#fff;box-shadow:0 3px 0 #eadbe7;text-align:left}
.mf-skin canvas{display:block;width:100%;height:auto;aspect-ratio:3/2}
.mf-skin b{display:block;padding:6px 8px 0;font-size:13px;font-weight:900;color:#4a2c55}
.mf-skin small{display:block;padding:0 8px 8px;font-size:10.5px;font-weight:800;color:#a07aa8;line-height:1.4;min-height:30px}
.mf-skin.is-on{box-shadow:0 0 0 3px #ff5f98}
.mf-skin.is-lock canvas{filter:grayscale(.6) brightness(.9)}
.mf-skin .lk{position:absolute;top:6px;right:6px;padding:2px 8px;border-radius:99px;background:rgba(74,44,85,.8);color:#fff;font-size:10.5px;font-weight:900}
.mf-chars{display:grid;grid-template-columns:repeat(8,1fr);gap:4px}
.mf-chars button{border:0;padding:2px;border-radius:50%;background:#fff;aspect-ratio:1}
.mf-chars button.is-on{box-shadow:0 0 0 3px #ff5f98}
.mf-chars img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}

/* チュートリアル */
.mf-tut{text-align:center}
.mf-tut canvas{display:block;margin:4px auto 8px;border-radius:14px;background:#fff7ea}
.mf-tut p{margin:0 0 6px;font-size:15px;font-weight:900;color:#4a2c55;line-height:1.6}
.mf-tut p small{display:block;font-size:12px;color:#8a7394;font-weight:800}
.mf-dots{display:flex;gap:6px;justify-content:center;margin:8px 0 12px}
.mf-dots i{width:8px;height:8px;border-radius:50%;background:#eadbe7}
.mf-dots i.is-on{background:#ff5f98;width:20px;border-radius:99px}

/* 大きな文字（よーい・連鎖など）は canvas。DOM のトースト */
.mf-toast{position:absolute;left:50%;top:18%;transform:translateX(-50%);z-index:30;padding:10px 18px;border-radius:16px;background:rgba(74,44,85,.9);color:#fff;font-size:14px;font-weight:900;box-shadow:0 8px 20px rgba(0,0,0,.25);animation:mfFade .2s ease;max-width:88%;text-align:center}
.mf-count{position:absolute;inset:0;z-index:15;display:flex;align-items:center;justify-content:center;pointer-events:none}
.mf-count b{font-size:64px;font-weight:900;color:#fff;text-shadow:0 5px 0 #ff5f98,0 10px 24px rgba(217,64,122,.45);animation:mfCount .6s ease}
@keyframes mfCount{0%{transform:scale(2);opacity:0}40%{transform:scale(1);opacity:1}100%{transform:scale(1);opacity:1}}

@media (min-width:561px){.mf-app{box-shadow:0 0 0 1px rgba(255,255,255,.1),0 0 60px rgba(0,0,0,.35)}}
/* SGC1002 ガチャの入口とレアの印 */
.mf-gcrow{position:relative;padding:4px 14px 0}
.mf-gcbar{position:relative;width:100%;justify-content:flex-start;gap:10px;padding:10px 14px;border-radius:16px;background:linear-gradient(90deg,#fff1f8,#f3ecff);box-shadow:0 4px 0 #e7c2e4,0 6px 16px rgba(90,45,95,.12);text-align:left}
.mf-gcbar b{flex:none;font-size:15px;color:#e04a86}
.mf-gcbar span{flex:1;min-width:0;font-size:11.5px;font-weight:800;color:#9a7aa6;line-height:1.35}
.mf-gcdot{position:absolute;right:9px;top:8px;width:10px;height:10px;border-radius:50%;background:#ff3f7a;box-shadow:0 0 0 2px #fff}
.mf-gcbar.is-skin{margin-top:10px}
.mf-iconbtn.mf-gcmini{display:none;position:relative;font-size:18px}
.mf-gcmini .mf-gcdot{right:-1px;top:-1px}
@media (max-height:700px){.mf-iconbtn.mf-gcmini{display:flex}}
.mf-gtag{display:inline-block;margin-left:2px;padding:0 5px;border-radius:6px;font-style:normal;font-size:10px;line-height:16px;vertical-align:1px;color:#fff;background:#9fb3c8}
.mf-gtag.is-r{background:#5aa9e6}
.mf-gtag.is-sr{background:linear-gradient(90deg,#b48cff,#ff8ad0)}
.mf-gtag.is-ur{background:linear-gradient(90deg,#ff7a7a,#ffc46e,#7ee08a,#6ec8ff,#b98bff);text-shadow:0 1px 0 rgba(0,0,0,.25)}
@media (prefers-reduced-motion:reduce){.mf-logo__t,.mf-logo__t span,.mf-faces canvas{animation:none}}
/* 2026-09-30 自分と相手の顔に、それぞれの盤の枠と同じ色の輪（自分＝ピンク・相手＝紫）。どちらが自分か一目で分かるように */
.mf-av img{box-shadow:0 0 0 3px #fff,0 0 0 6px rgba(255,143,182,.9),0 4px 10px rgba(0,0,0,.15)}
.mf-chead img{box-shadow:0 0 0 2px #fff,0 0 0 5px rgba(124,92,255,.75),0 4px 10px rgba(0,0,0,.15)}
