/* ドミノチャレンジ */
body.arcade-page{--dm-ink:#3a2a1e;--dm-soft:#7a6656;--dm-paper:#fffaf2;--dm-line:#ead9c4;--dm-accent:#b8572a}
.arcade-stage{background:#e9ddc9;height:calc(100svh - 196px)}
.arcade-stage::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse at 50% 55%,transparent 58%,rgba(40,22,10,.22) 100%)}
.arcade-canvas[data-tool="erase"]{cursor:cell}
.arcade-canvas[data-tool="view"]{cursor:grab}
.arcade-canvas{cursor:crosshair}
.arcade-hud{top:12px}
.arcade-stat{min-width:84px;padding:7px 16px}
.arcade-stat>strong{font-size:19px}

/* 操作の並び */
.dm-controls{gap:10px;padding:10px 16px}
.dm-tools{display:flex;border:1px solid var(--arcade-line);border-radius:8px;overflow:hidden;background:#fff}
.dm-tool{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:8px 14px;border:0;border-right:1px solid var(--arcade-line);background:#fff;color:var(--dm-ink);font-weight:800;touch-action:manipulation}
.dm-tool:last-child{border-right:0}
.dm-tool[aria-pressed="true"]{background:var(--dm-accent);color:#fff}
.dm-tool:not([aria-pressed="true"]):hover{background:#f6efe5}
.dm-btn[aria-pressed="true"]{background:#fbe7c8;border-color:#e8b06b}
.dm-go{min-width:132px;font-size:16px}
.dm-go svg{width:22px;height:22px}

/* 吹き出し・理由・手の案内 */
.dm-tip{position:absolute;left:50%;top:84px;transform:translate(-50%,-6px);z-index:5;max-width:min(560px,calc(100% - 28px));padding:9px 16px;border-radius:10px;background:rgba(255,250,242,.95);color:var(--dm-ink);font-weight:700;font-size:14px;line-height:1.55;text-align:center;box-shadow:0 6px 24px #4a2e1520;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s}
.dm-tip.is-on{opacity:1;transform:translate(-50%,0)}
.dm-why{position:absolute;z-index:6;transform:translate(-50%,-150%);padding:5px 10px;border-radius:7px;background:#c8412f;color:#fff;font-size:12px;font-weight:800;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .12s}
.dm-why.is-on{opacity:1}
.dm-hand{position:absolute;left:0;top:0;z-index:4;width:44px;height:44px;margin:-6px 0 0 -10px;color:#fff;filter:drop-shadow(0 3px 6px #0006);pointer-events:none;opacity:0;display:none}
.dm-hand.is-on{display:block}
.dm-hand svg{width:44px;height:44px;fill:rgba(255,255,255,.35)}

/* パネル（結果・面を選ぶ・確認） */
.dm-panel{position:absolute;inset:0;z-index:7;display:flex;align-items:center;justify-content:center;padding:14px;background:rgba(58,34,18,.28)}
.dm-card{position:relative;width:440px;max-width:100%;max-height:100%;overflow:auto;background:var(--dm-paper);color:var(--dm-ink);border-radius:14px;padding:20px 22px;box-shadow:0 18px 50px #3a221840;text-align:center}
.dm-card--small{width:360px}
.dm-card h2{margin:0 0 12px;font-size:22px;font-weight:900}
.dm-note{margin:8px 0 14px;color:var(--dm-soft);font-size:14px;line-height:1.7}
.dm-row{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:14px}
.dm-row .arcade-button{min-width:120px}
.dm-stars{list-style:none;margin:6px 0 4px;padding:0;display:grid;gap:8px;text-align:left}
.dm-star{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:10px;background:#f4eadc;color:#9b8a7a;font-weight:800}
.dm-star small{display:block;font-weight:600;font-size:12px;color:var(--dm-soft)}
.dm-star__icon{font-size:28px;line-height:1;color:#d9cbb8}
.dm-star.is-on{background:#fff2d6;color:var(--dm-ink)}
.dm-star.is-on .dm-star__icon{color:#f0b429;animation:dm-pop .45s calc(var(--k) * .22s + .2s) both}
@keyframes dm-pop{0%{transform:scale(0) rotate(-40deg)}70%{transform:scale(1.3) rotate(8deg)}100%{transform:scale(1)}}
.dm-badge{display:inline-block;margin:10px 0 0;padding:5px 12px;border-radius:20px;background:#e7f4e7;color:#2f7a45;font-weight:800;font-size:13px}
.dm-menu{width:640px;text-align:left}
.dm-menu__head{display:flex;align-items:center;gap:12px;margin-bottom:4px}
.dm-menu__head h2{margin:0;flex:1}
.dm-total{font-weight:900;color:#c98a14}
.dm-close{flex-shrink:0}
.dm-chapter{margin-top:14px}
.dm-chapter h3{margin:0 0 8px;font-size:15px;font-weight:900}
.dm-chapter h3 small{margin-left:8px;font-weight:600;color:var(--dm-soft);font-size:12px}
.dm-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.dm-stage{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:72px;padding:8px 10px;border:1px solid var(--dm-line);border-radius:10px;background:#fff;color:var(--dm-ink);text-align:left}
.dm-stage b{font-size:13px;color:var(--dm-accent)}
.dm-stage span{font-size:13px;font-weight:800;line-height:1.3}
.dm-stage .dm-mini{font-style:normal;color:#f0b429;font-size:13px;letter-spacing:1px}
.dm-stage .dm-mini svg{width:15px;height:15px;color:#a99787}
.dm-stage.is-cur{border-color:var(--dm-accent);box-shadow:0 0 0 2px #b8572a33}
.dm-stage:not(:disabled):hover{background:#fff6ea}
.dm-perfect{position:absolute;right:8px;top:6px;font-style:normal;color:#2f7a45;font-weight:900}
.dm-stage--free{width:100%;min-height:56px;flex-direction:row;align-items:center;gap:12px}
.dm-pals{display:flex;flex-wrap:wrap;gap:8px}
.dm-pal{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 8px;border:1px solid var(--dm-line);border-radius:10px;background:#fff;color:var(--dm-ink);min-width:78px}
.dm-pal.is-cur{border-color:var(--dm-accent);box-shadow:0 0 0 2px #b8572a33}
.dm-pal small{font-weight:700;font-size:11px}
.dm-sw{display:flex}
.dm-sw i{width:12px;height:22px;border-radius:2px;margin:0 1px;box-shadow:inset 0 0 0 1px #0001}

/* 説明（共通の .ff-guide と同じ見た目） */
.ff-guide{max-width:820px;margin:34px auto 10px;padding:26px clamp(18px,4vw,34px);background:#fffaf2;border:2px solid #ead9c4;border-radius:22px;box-shadow:0 4px 18px #5a3a1a12;color:var(--dm-ink);line-height:1.85;font-size:15px}
.ff-guide h2{font-size:1.18rem;margin:0 0 12px;padding-left:12px;border-left:5px solid var(--dm-accent)}
.ff-guide h2:not(:first-child){margin-top:28px}
.ff-guide p{margin:.5em 0}
.ff-guide ol,.ff-guide ul{padding-left:1.4em;margin:.5em 0}
.ff-guide li{margin:.25em 0}
.ff-guide li::marker{color:var(--dm-accent);font-weight:700}
.ff-guide table{width:100%;border-collapse:collapse;margin:10px 0;font-size:.95rem}
.ff-guide th,.ff-guide td{border:1px solid #ead9c4;padding:7px 10px;text-align:left;vertical-align:top}
.ff-guide th{background:#f8ecdb;font-weight:700;white-space:nowrap}
.ff-guide dl{margin:8px 0 0}
.ff-guide dt{font-weight:700;margin-top:14px;padding-left:1.6em;text-indent:-1.6em}
.ff-guide dt::before{content:"Q.";color:var(--dm-accent);margin-right:.45em}
.ff-guide dd{margin:4px 0 0;padding-left:1.6em;color:var(--dm-soft)}
.ff-guide .ff-guide__note{font-size:.9rem;color:var(--dm-soft)}

@media(max-width:760px){
 .arcade-stage{height:calc(100svh - 238px)}
 .dm-controls{gap:6px;padding:8px 8px;min-height:120px}
 .dm-tools{order:1}
 .dm-tool{padding:8px 10px;font-size:13px}
 .dm-btn{padding:9px 10px}
 .dm-btn span{display:none}
 .dm-go{order:2;flex:1 1 100%;min-height:46px}
 .dm-go span{display:inline}
 .arcade-hud{top:8px}
 .arcade-stat{min-width:0;padding:5px 11px}.arcade-stat>strong{font-size:16px}.arcade-stat>span{font-size:10px}
 .dm-tip{top:62px;font-size:13px}
 .dm-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .dm-card{padding:16px 14px}
}
@media(max-height:500px) and (orientation:landscape){
 .arcade-stage{height:calc(100svh - 112px)}
 .dm-controls{min-height:64px;padding:6px 10px;flex-wrap:nowrap}
 .dm-btn span,.dm-tool span{display:none}
 .dm-tool{padding:8px 11px}
 .dm-go{flex:0 0 auto;min-width:110px;order:0}
 .dm-go span{display:inline}
 .arcade-hud{top:8px;left:10px;transform:none}
 .dm-tip{top:10px;left:auto;right:10px;transform:none;max-width:46%}
 .dm-tip.is-on{transform:none}
 .dm-card{max-height:calc(100% - 10px)}
 .dm-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(prefers-reduced-motion:reduce){.dm-tip,.dm-why{transition:none}.dm-star.is-on .dm-star__icon{animation:none}}
