/* Mazes online (assets/play/mazes.js) */
.mz-wrap { border-radius: 14px; overflow: hidden; box-shadow: 0 0 0 3px var(--line); background: #fff; display: flex; justify-content: center; }
.mz-svg { display: block; width: 100%; height: auto; max-height: calc(100vh - 210px); min-height: 260px; touch-action: none; cursor: pointer; }
.game:fullscreen .mz-svg { max-height: calc(100vh - 230px); }
.mz-floor { fill: var(--soft); }
.mz-walls { fill: none; stroke: var(--navy); stroke-linecap: round; stroke-linejoin: round; }
.mz-trail { fill: none; stroke-linecap: round; stroke-linejoin: round; opacity: .7; }
.mz-hero { transition: transform .09s linear; }
.mz-hero-in, .mz-goal > g { transform-box: fill-box; transform-origin: center; }
.mz-hero.pulse .mz-hero-in { animation: mz-bounce .5s ease-in-out 4; }
.mz-hero.happy .mz-hero-in, .mz-goal.happy > g { animation: mz-bounce .45s ease-in-out 3; }
@keyframes mz-bounce { 50% { transform: scale(1.3); } }
.mz-hint { fill: var(--yellow); stroke: #e0a800; stroke-width: .6; opacity: 0; animation: mz-hint 2.4s ease-out forwards; }
@keyframes mz-hint { 10% { opacity: 1; } 80% { opacity: 1; } 100% { opacity: 0; } }

.mz-tools { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 10px; flex-wrap: wrap; }
.mz-pad { display: grid; grid-template-columns: repeat(3, 52px); grid-template-rows: repeat(2, 48px); gap: 4px; }
.mz-pad .g-btn { padding: 0; font-size: 1.4rem; min-width: 52px; }
.mz-pad .g-btn:nth-child(1) { grid-column: 2; grid-row: 1; }
.mz-pad .g-btn:nth-child(2) { grid-column: 1; grid-row: 2; }
.mz-pad .g-btn:nth-child(3) { grid-column: 2; grid-row: 2; }
.mz-pad .g-btn:nth-child(4) { grid-column: 3; grid-row: 2; }
@media (max-width: 600px) { .mz-wrap { border-radius: 10px; } }
