.mh-board{position:relative;margin:0 auto;background:linear-gradient(180deg,#15803d,#14532d);border-radius:10px;padding:.75rem;box-shadow:0 4px 16px #0000004d;user-select:none;-webkit-user-select:none;touch-action:manipulation;--mh-tile-w: clamp(22px, calc((100vw - 32px)/16) , 54px);--mh-tile-h: calc(var(--mh-tile-w) * 1.4);--mh-half-x: calc(var(--mh-tile-w) / 2);--mh-half-y: calc(var(--mh-tile-h) / 2);--mh-layer-x: calc(var(--mh-tile-w) * .1);--mh-layer-y: calc(var(--mh-tile-h) * .1)}.mh-tile{position:absolute;width:var(--mh-tile-w);height:var(--mh-tile-h);background:linear-gradient(180deg,#fdfcf7,#f0ece0);border-radius:4px;box-shadow:1px 2px #3c321e8c,2px 3px #3c321e66,inset 1px 1px #ffffffd9,0 2px 4px #00000040;display:flex;align-items:center;justify-content:center;font-size:calc(var(--mh-tile-w) * .62);line-height:1;color:#1f2937;cursor:default;transition:transform .1s ease-out,box-shadow .1s ease-out}.mh-tile--free{cursor:pointer;background:linear-gradient(180deg,#fff,#f6f1de)}.mh-tile--free:hover{transform:translate(-1px,-2px);box-shadow:2px 4px #3c321e8c,3px 5px #3c321e66,inset 1px 1px #ffffffd9,0 4px 8px #0000004d}.mh-tile--blocked{filter:brightness(.78) saturate(.7)}.mh-tile--selected{outline:3px solid #f59e0b;outline-offset:-2px;z-index:9999!important;background:linear-gradient(180deg,#fffbeb,#fde68a)}.mh-tile--hint{outline:3px dashed #fbbf24;outline-offset:-2px;z-index:9998!important;animation:mh-hint-pulse 1.4s ease-in-out infinite;background:linear-gradient(180deg,#fffbeb,#fef3c7)}.mh-hint-link{position:absolute;left:0;top:0;pointer-events:none;overflow:visible;z-index:9997}.mh-hint-link line{stroke:#f59e0b;stroke-width:5;stroke-linecap:round;stroke-dasharray:9 7;opacity:.9;animation:mh-hint-pulse 1.4s ease-in-out infinite}.mh-tile--matching{pointer-events:none;animation:mh-match-burst .32s ease-out forwards;z-index:10000!important}@keyframes mh-match-burst{0%{transform:scale(1) translateY(0);opacity:1;filter:brightness(1);box-shadow:1px 2px #3c321e8c,2px 3px #3c321e66,inset 1px 1px #ffffffd9}35%{transform:scale(1.18) translateY(-4px);opacity:1;filter:brightness(1.12);box-shadow:0 0 16px 4px #fbbf24bf,inset 1px 1px #fffffff2}to{transform:scale(.45) translateY(-20px);opacity:0;filter:brightness(1.12)}}.mh-tile{transition:outline-color .12s ease-out,background .12s ease-out}@media(prefers-reduced-motion:reduce){.mh-tile--matching{animation:mh-match-fade 60ms linear forwards}@keyframes mh-match-fade{to{opacity:0}}.mh-tile{transition:none}}@keyframes mh-hint-pulse{0%,to{box-shadow:1px 2px #3c321e8c,2px 3px #3c321e66,inset 1px 1px #ffffffd9,0 0 #fbbf2400}50%{box-shadow:1px 2px #3c321e8c,2px 3px #3c321e66,inset 1px 1px #ffffffd9,0 0 0 6px #fbbf2466}}.mh-tile--bamboo{color:#15803d}.mh-tile--character{color:#1f2937}.mh-tile--dot{color:#1d4ed8}.mh-tile--wind{color:#1f2937}.mh-tile--dragon-red{color:#b91c1c}.mh-tile--dragon-green{color:#15803d}.mh-tile--dragon-white{color:#475569}.mh-tile--flower{color:#be185d}.mh-tile--season{color:#ea580c}.mh-tile--shake{animation:mh-tile-shake .4s ease-in-out}@keyframes mh-tile-shake{0%,to{transform:translate(0)}25%{transform:translate(-3px)}50%{transform:translate(3px)}75%{transform:translate(-2px)}}.mh-board--solved{animation:mh-win-flash .7s ease-out}@keyframes mh-win-flash{0%{box-shadow:0 0 #2e7d3280}60%{box-shadow:0 0 0 14px #2e7d3252}to{box-shadow:0 0 0 4px #2e7d3299}}@media(prefers-reduced-motion:reduce){.mh-tile,.mh-tile:hover,.mh-tile--shake,.mh-board--solved{animation:none;transition:none;transform:none}}.mh-no-moves-banner{margin:.5rem auto 0;padding:.5rem .85rem;background:#fef3c7;border:1px solid #fbbf24;border-radius:6px;color:#92400e;font-size:.85rem;text-align:center;max-width:360px;display:none}.mh-no-moves-banner.active{display:block}.mh-hint-panel{display:none;margin:.5rem auto 0;padding:.5rem .85rem;background:#ecfeff;border-left:4px solid #06b6d4;border-radius:4px;color:#155e75;font-size:.88rem;max-width:540px;line-height:1.4}.mh-hint-panel.active{display:block}.mh-example{margin-top:1rem;padding-top:.85rem;border-top:1px solid rgba(0,0,0,.08)}.mh-slide{flex:0 0 100%;scroll-snap-align:start;display:flex;flex-direction:column;align-items:center;gap:.55rem;padding:.25rem .5rem;box-sizing:border-box}.mh-example-grid{display:grid;grid-template-columns:repeat(4,38px);grid-template-rows:52px;gap:6px;background:#166534;padding:8px;border-radius:6px;width:max-content}.mh-ex-tile{display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#fdfcf7,#f0ece0);color:#1f2937;border-radius:4px;font-size:22px;line-height:1;border:none;box-shadow:1px 2px #3c321e8c,inset 1px 1px #ffffffd9;-webkit-user-select:none;user-select:none}.mh-ex-tile.mh-ex-blocked{filter:brightness(.78) saturate(.7);position:relative}.mh-ex-tile.mh-ex-blocked:after{content:"🔒";position:absolute;top:-4px;right:-4px;font-size:12px;background:#000000a6;color:#fff;border-radius:50%;width:14px;height:14px;display:flex;align-items:center;justify-content:center}.mh-ex-tile.mh-ex-bamboo{color:#15803d}.mh-ex-tile.mh-ex-flower{color:#be185d}.mh-ex-tile.mh-ex-dragon{color:#b91c1c}.mh-ex-tile.mh-ex-arrow{background:transparent;border:none;box-shadow:none;color:#fff;font-size:22px}.mh-ex-tile.mh-ex-empty{background:#ffffff14;border:2px dashed rgba(255,255,255,.35);color:#ffffff8c;box-shadow:none}.mh-ex-tile.mh-ex-trophy{background:transparent;border:none;box-shadow:none;color:#fde047;font-size:28px}.mh-example-caption{font-size:.78rem;color:var(--color-text-muted);margin:0;max-width:300px;text-align:center;min-height:2.4em}.mh-slide-nav{position:absolute;top:34px;transform:translateY(-50%);width:28px;height:28px;border-radius:50%;background:#0000008c;color:#fff;border:none;cursor:pointer;font-size:20px;line-height:1;padding:0 0 2px;display:flex;align-items:center;justify-content:center;z-index:2}.mh-slide-dots{display:flex;justify-content:center;gap:.4rem;margin-top:.45rem}.mh-alltime-bar{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem 1rem;margin-top:.6rem;padding:.4rem 0;font-size:.85em;opacity:.8;border-top:1px dashed var(--color-border)}.mh-alltime-bar .gstat{background:none;border:none;padding:0;gap:.3rem}.mh-alltime-label{color:var(--color-text-muted);font-size:.85em}
