.movement-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:20px;align-items:start}
.movement-toolbar{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin:15px 0}
.movement-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:16px}
.movement-stat{padding:11px 6px;background:white;border:2px solid #c8e5f5;border-radius:17px;text-align:center;box-shadow:0 4px 0 #d1e7f3}
.movement-stat strong{display:block;color:#075985;font-size:1.3rem;font-weight:1000}.movement-stat span{font-size:.72rem;color:#486176;font-weight:900}
.movement-board-card{padding:16px;position:relative}.movement-side{padding:20px}.movement-side h2{font-size:1.2rem;margin-bottom:10px}.movement-side p{margin:10px 0}
.movement-side label{display:block;margin:14px 0;font-weight:800;font-size:.88rem}.movement-side select{display:block;width:100%;margin-top:8px;padding:12px;border:2px solid #b9d8ed;border-radius:13px;font:800 1rem Nunito;background:white;color:#173653;min-height:46px}
.movement-side input[type=checkbox]{width:20px;height:20px;vertical-align:middle;margin-right:7px;accent-color:#6d28d9}
.movement-legend{display:grid;gap:10px;padding:0;list-style:none;font-size:.85rem;font-weight:800}.movement-legend li{display:flex;gap:9px;align-items:center}.movement-legend span{font-size:24px;min-width:30px;text-align:center}
.movement-idea{padding:17px 20px;border:2px solid #c4b5fd;border-radius:20px;background:#f5f3ff;margin-top:18px}.movement-idea h2{font-size:1.05rem;color:#5b21b6;margin-bottom:6px}.movement-idea p{font-weight:700;font-size:.95rem}
.movement-message{min-height:52px;padding:10px 0;font-size:.9rem;line-height:1.4;color:#37566d;font-weight:800}
.movement-help{margin-top:22px;padding:18px 22px}.movement-help summary{font-weight:900;min-height:44px;cursor:pointer;display:flex;align-items:center}.movement-help p{margin:10px 0}
.maze-scroll{max-width:100%;overflow:auto;border-radius:20px;border:3px solid #86d5ee;background:#c3eaf4;padding:8px;scrollbar-width:thin;overscroll-behavior:contain}
#mazeBoard{display:grid;grid-template-columns:repeat(var(--cols),minmax(25px,1fr));gap:3px;width:100%;min-width:calc(var(--cols)*28px - 3px);outline-offset:-3px;touch-action:pan-x pan-y}
.maze-cell{aspect-ratio:1;border-radius:8px;background:#fffdf4;display:grid;place-items:center;position:relative;font-size:clamp(14px,2.3vw,24px);line-height:1;box-shadow:inset 0 -2px #e9e3cb}
.maze-cell.wall{background:linear-gradient(145deg,#70ba86,#339b70);border:1px solid #328360;box-shadow:inset 0 3px #a8dcae;border-radius:8px 8px 5px 5px}
.maze-cell.rock{background:#eef2f7}.maze-cell.lantern{background:#fff4be}.maze-cell.key{background:#f3e8ff}.maze-cell.exit{background:#d9f3ff;border:2px solid #0284c7}.maze-cell.player{background:#6d28d9;border:2px solid white;box-shadow:0 0 0 2px #8b5cf6;z-index:1}.maze-cell.player span{font-size:inherit}.maze-cell.hint::after{content:'';position:absolute;inset:2px;border:3px dashed #6d28d9;border-radius:7px}.maze-cell.lantern::before{content:'✦';position:absolute;top:1px;right:1px;font:900 10px Nunito;color:#975f04}
.maze-moves{display:grid;grid-template-columns:repeat(3,58px);grid-template-areas:'. up .' 'left down right';gap:8px;justify-content:center;margin:8px auto 0}.maze-moves button{height:49px;font-size:24px;padding:5px}.maze-moves [data-step=up]{grid-area:up}.maze-moves [data-step=left]{grid-area:left}.maze-moves [data-step=down]{grid-area:down}.maze-moves [data-step=right]{grid-area:right}
.maze-overview{display:flex;gap:9px;flex-wrap:wrap;justify-content:space-between;align-items:center;margin-bottom:10px}.maze-overview p{font-size:.85rem;font-weight:900}.maze-clock{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:.8rem;font-weight:800}.maze-clock progress{flex:1}
.movement-result{padding:22px;background:#fff8dd;border:2px solid #f5cf67;border-radius:22px;margin:14px 0;text-align:center}.movement-result h2{font-size:1.4rem;margin-bottom:10px}.movement-result p{margin:10px 0}.movement-result .practice-actions{justify-content:center}
.movement-pause{padding:14px 18px;background:#fff7db;border:2px solid #f5cf67;border-radius:18px;margin-bottom:12px;font-weight:800}.movement-pause button{margin-left:10px}
.movement-note{font-size:.8rem;color:#486176;margin-top:15px!important}.maze-bag{display:flex;flex-wrap:wrap;gap:6px;margin-top:15px}.maze-bag span{border:1px solid #b5dfc8;background:#ecfdf5;padding:5px 9px;border-radius:10px;font-size:.75rem;color:#065f46;font-weight:800}
.catcher-stage{position:relative;border-radius:22px;background:linear-gradient(#c5efff,#e6fbdc);overflow:hidden;border:3px solid #84d4e9}
.maze-directions{margin-top:14px;font-size:.8rem;color:#486176}.maze-directions summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-weight:900}.maze-directions p{padding-bottom:8px}
.maze-cell.player{color:white}
.catcher-postcard{height:115px;border-radius:19px;background:linear-gradient(#cef0fd 72%,#bbe8c9 72%);display:flex;align-items:center;justify-content:center;gap:26px;margin-bottom:18px;border:2px solid #b6e1ef}.catcher-postcard span{font-size:48px;filter:drop-shadow(0 5px 0 #17365312)}.catcher-postcard span:last-child{font-size:64px}
.catcher-round .movement-result .practice-actions{margin-top:18px}
#dropsCanvas{display:block;width:100%;height:auto;aspect-ratio:700/500;touch-action:none;user-select:none}
.catcher-cover{position:absolute;inset:0;display:grid;place-items:center;padding:15px;background:#e8f8ffe8}.catcher-cover>div{max-width:440px;text-align:center}.catcher-cover h2{margin-bottom:10px}.catcher-cover p{margin-bottom:14px;font-weight:700;font-size:.95rem}.catcher-cover .cover-icon{font-size:42px;display:block;margin-bottom:8px}
.catcher-start{max-width:780px;margin:0 auto 16px;padding:24px;display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center}.catcher-start h2{margin-bottom:8px}.catcher-start p{font-size:.95rem;color:#37566d;font-weight:700}.catcher-start select{font:800 .95rem Nunito;color:#173653;background:white;border:2px solid #c4b5fd;padding:12px;border-radius:13px;margin:12px 0;min-height:46px}.catcher-start label{font-weight:800;font-size:.9rem;display:block}
.catcher-moves{display:flex;gap:12px;margin-top:14px}.catcher-moves button{flex:1;touch-action:none;user-select:none;min-height:50px}
.catcher-legend{display:flex;gap:12px;flex-wrap:wrap;margin:12px 0;font-size:.8rem;font-weight:900}.catcher-legend span{padding:6px 10px;background:#fff;border:1px solid #c8e5f5;border-radius:12px}
.catcher-round{max-width:780px;margin:auto}.catcher-round .movement-result{background:#fff;border:2px solid #a7dfcc}.catcher-recap{padding:14px 18px;background:#f5f3ff;border:2px solid #ddd6fe;border-radius:16px;text-align:left}.catcher-recap p{font-size:.92rem;font-weight:700}.catcher-recap ul{padding-left:20px;font-size:.9rem}.catcher-recap li{margin:10px 0}
.movement-spark{animation:movementSpark .45s ease}@keyframes movementSpark{0%{transform:scale(.92)}50%{transform:scale(1.03)}100%{transform:scale(1)}}
@media(max-width:760px){.movement-layout{grid-template-columns:1fr}.movement-side{padding:18px}.movement-side .movement-legend{grid-template-columns:repeat(2,minmax(0,1fr))}.movement-board-card{padding:12px}.maze-cell{font-size:16px}.movement-toolbar{margin:12px 0}.movement-stats{gap:6px}.movement-stat{padding:8px 3px}.movement-stat strong{font-size:1.1rem}.movement-stat span{font-size:.68rem}.catcher-start{grid-template-columns:1fr;padding:18px}.catcher-start button{width:100%}.catcher-cover .cover-icon{display:none}.catcher-cover h2{font-size:1.25rem}.catcher-cover p{font-size:.88rem;margin-bottom:12px}.movement-result{padding:18px}.movement-result h2{font-size:1.25rem}}
@media(max-width:380px){.maze-scroll{padding:5px}.maze-moves{grid-template-columns:repeat(3,55px)}.movement-toolbar button{padding:9px 12px;font-size:.85rem}.catcher-cover{padding:10px}.catcher-cover p{font-size:.8rem}.catcher-cover button{font-size:.88rem;padding:10px}.movement-pause button{margin:10px 0 0}.movement-side .movement-legend{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.movement-spark{animation:none}}
html[data-sg-calm=true] .movement-spark{animation:none}
