{"id":4627,"date":"2026-03-01T06:10:42","date_gmt":"2026-03-01T09:10:42","guid":{"rendered":"https:\/\/siminova.com.br\/blog\/?p=4627"},"modified":"2026-03-13T09:38:45","modified_gmt":"2026-03-13T12:38:45","slug":"labirinto","status":"publish","type":"post","link":"https:\/\/siminova.com.br\/blog\/2026\/03\/labirinto\/","title":{"rendered":"Labirinto"},"content":{"rendered":"    \n    <div id=\"labirinto-jogo\" style=\"max-width: 800px; margin: 10px auto; font-family: Arial, sans-serif; background: white; padding: 10px; border-radius: 15px; position: relative; overflow: visible;\">\n        <button class=\"btn-fullscreen\" id=\"btn-fullscreen\" title=\"Tela Cheia\">\u26f6<\/button>\n        \n        <style>\n            #labirinto-jogo .titulo { text-align: center; margin-bottom: 10px; }\n            #labirinto-jogo .titulo h2 { color: #009739; font-size: 1.8em; margin: 0 0 10px 0; }\n            \n            #labirinto-jogo .fullscreen-title {\n                display: none;\n                text-align: center;\n                margin: 0 0 20px 0;\n                padding: 10px;\n                color: #003d82;\n                font-size: 2em;\n                font-weight: bold;\n                background: #f0f0f0;\n                border-radius: 8px;\n            }\n            \n            \/* Fullscreen simulado para mobile *\/\n            #labirinto-jogo.fullscreen-mobile {\n                position: fixed !important;\n                top: 0 !important;\n                left: 0 !important;\n                width: 100vw !important;\n                height: 100vh !important;\n                max-width: 100vw !important;\n                margin: 0 !important;\n                border-radius: 0 !important;\n                z-index: 999999 !important;\n                overflow-y: auto !important;\n                padding: 10px !important;\n                background: white !important;\n            }\n            \n            #labirinto-jogo.fullscreen-mobile .fullscreen-title {\n                display: block !important;\n                font-size: 1.2em !important;\n                margin: 0 0 8px 0 !important;\n                padding: 6px !important;\n            }\n            \n            #labirinto-jogo:fullscreen,\n            #labirinto-jogo:-webkit-full-screen,\n            #labirinto-jogo:-moz-full-screen,\n            #labirinto-jogo:-ms-fullscreen {\n                width: 100vw;\n                height: 100vh;\n                max-width: 100vw;\n                margin: 0;\n                border-radius: 0;\n                overflow-y: auto;\n                padding: 15px;\n                background: white;\n                display: flex;\n                flex-direction: column;\n            }\n            \n            #labirinto-jogo:fullscreen .fullscreen-title,\n            #labirinto-jogo:-webkit-full-screen .fullscreen-title,\n            #labirinto-jogo:-moz-full-screen .fullscreen-title,\n            #labirinto-jogo:-ms-fullscreen .fullscreen-title {\n                font-size: 1.5em;\n                margin: 0 0 10px 0;\n                padding: 8px;\n            }\n            \n            #labirinto-jogo:fullscreen .titulo,\n            #labirinto-jogo:-webkit-full-screen .titulo,\n            #labirinto-jogo:-moz-full-screen .titulo,\n            #labirinto-jogo:-ms-fullscreen .titulo {\n                margin-bottom: 8px;\n            }\n            \n            #labirinto-jogo:fullscreen .titulo p,\n            #labirinto-jogo:-webkit-full-screen .titulo p,\n            #labirinto-jogo:-moz-full-screen .titulo p,\n            #labirinto-jogo:-ms-fullscreen .titulo p {\n                font-size: 1em;\n            }\n            \n            #labirinto-jogo:fullscreen .instructions,\n            #labirinto-jogo:-webkit-full-screen .instructions,\n            #labirinto-jogo:-moz-full-screen .instructions,\n            #labirinto-jogo:-ms-fullscreen .instructions {\n                margin-bottom: 10px;\n                padding: 8px 12px;\n            }\n            \n            #labirinto-jogo:fullscreen .info,\n            #labirinto-jogo:-webkit-full-screen .info,\n            #labirinto-jogo:-moz-full-screen .info,\n            #labirinto-jogo:-ms-fullscreen .info {\n                margin-bottom: 10px;\n                gap: 8px;\n            }\n            \n            #labirinto-jogo:fullscreen .dif-btns,\n            #labirinto-jogo:-webkit-full-screen .dif-btns,\n            #labirinto-jogo:-moz-full-screen .dif-btns,\n            #labirinto-jogo:-ms-fullscreen .dif-btns {\n                margin-bottom: 10px;\n            }\n            \n            #labirinto-jogo:fullscreen .game-layout,\n            #labirinto-jogo:-webkit-full-screen .game-layout,\n            #labirinto-jogo:-moz-full-screen .game-layout,\n            #labirinto-jogo:-ms-fullscreen .game-layout {\n                display: grid;\n                grid-template-columns: 1.2fr 1fr;\n                gap: 20px;\n                align-items: start;\n                flex: 1;\n                max-width: 1600px;\n                margin: 0 auto;\n                width: 100%;\n            }\n            \n            #labirinto-jogo:fullscreen .maze-area,\n            #labirinto-jogo:-webkit-full-screen .maze-area,\n            #labirinto-jogo:-moz-full-screen .maze-area,\n            #labirinto-jogo:-ms-fullscreen .maze-area {\n                min-height: auto;\n                height: fit-content;\n                display: flex;\n                align-items: center;\n                justify-content: center;\n                padding: 15px;\n            }\n            \n            #labirinto-jogo:fullscreen .cell,\n            #labirinto-jogo:-webkit-full-screen .cell,\n            #labirinto-jogo:-moz-full-screen .cell,\n            #labirinto-jogo:-ms-fullscreen .cell {\n                width: 45px;\n                height: 45px;\n                font-size: 1.4em;\n            }\n            \n            #labirinto-jogo:fullscreen .controls-section,\n            #labirinto-jogo:-webkit-full-screen .controls-section,\n            #labirinto-jogo:-moz-full-screen .controls-section,\n            #labirinto-jogo:-ms-fullscreen .controls-section {\n                padding: 15px;\n            }\n            \n            \/* Bot\u00f5es lado a lado - SEMPRE (normal e fullscreen) *\/\n            #labirinto-jogo .action-btns {\n                display: grid !important;\n                grid-template-columns: repeat(2, 1fr) !important;\n                grid-template-rows: auto auto !important;\n                gap: 10px !important;\n                flex-direction: initial !important;\n            }\n            \n            \/* Executar e Limpar lado a lado *\/\n            #labirinto-jogo .action-btns .btn-exec {\n                grid-column: 1 !important;\n                grid-row: 1 !important;\n            }\n            \n            #labirinto-jogo .action-btns .btn-clear {\n                grid-column: 2 !important;\n                grid-row: 1 !important;\n            }\n            \n            \/* Novo Labirinto ocupa largura total *\/\n            #labirinto-jogo .action-btns .btn-new {\n                grid-column: 1 \/ 3 !important;\n                grid-row: 2 !important;\n            }\n            \n            @media (max-width: 1200px) and (orientation: landscape) {\n                #labirinto-jogo:fullscreen .game-layout,\n                #labirinto-jogo:-webkit-full-screen .game-layout,\n                #labirinto-jogo:-moz-full-screen .game-layout,\n                #labirinto-jogo:-ms-fullscreen .game-layout {\n                    grid-template-columns: 1fr 1fr;\n                    gap: 15px;\n                }\n                \n                #labirinto-jogo:fullscreen .cell,\n                #labirinto-jogo:-webkit-full-screen .cell,\n                #labirinto-jogo:-moz-full-screen .cell,\n                #labirinto-jogo:-ms-fullscreen .cell {\n                    width: 35px;\n                    height: 35px;\n                    font-size: 1.2em;\n                }\n            }\n            \n            @media (max-width: 900px), (max-height: 600px) {\n                #labirinto-jogo:fullscreen .game-layout,\n                #labirinto-jogo:-webkit-full-screen .game-layout,\n                #labirinto-jogo:-moz-full-screen .game-layout,\n                #labirinto-jogo:-ms-fullscreen .game-layout {\n                    grid-template-columns: 1fr;\n                    gap: 15px;\n                }\n                \n                #labirinto-jogo:fullscreen .cell,\n                #labirinto-jogo:-webkit-full-screen .cell,\n                #labirinto-jogo:-moz-full-screen .cell,\n                #labirinto-jogo:-ms-fullscreen .cell {\n                    width: 32px;\n                    height: 32px;\n                    font-size: 1.1em;\n                }\n                \n                #labirinto-jogo:fullscreen,\n                #labirinto-jogo:-webkit-full-screen,\n                #labirinto-jogo:-moz-full-screen,\n                #labirinto-jogo:-ms-fullscreen {\n                    padding: 10px;\n                }\n                \n                #labirinto-jogo:fullscreen .fullscreen-title,\n                #labirinto-jogo:-webkit-full-screen .fullscreen-title,\n                #labirinto-jogo:-moz-full-screen .fullscreen-title,\n                #labirinto-jogo:-ms-fullscreen .fullscreen-title {\n                    font-size: 1.2em;\n                    margin: 0 0 8px 0;\n                    padding: 6px;\n                }\n                \n                #labirinto-jogo:fullscreen .titulo p,\n                #labirinto-jogo:-webkit-full-screen .titulo p,\n                #labirinto-jogo:-moz-full-screen .titulo p,\n                #labirinto-jogo:-ms-fullscreen .titulo p {\n                    font-size: 0.85em;\n                }\n                \n                #labirinto-jogo:fullscreen .instructions,\n                #labirinto-jogo:-webkit-full-screen .instructions,\n                #labirinto-jogo:-moz-full-screen .instructions,\n                #labirinto-jogo:-ms-fullscreen .instructions {\n                    font-size: 0.75em;\n                    padding: 6px 10px;\n                    margin-bottom: 8px;\n                }\n                \n                #labirinto-jogo:fullscreen .info,\n                #labirinto-jogo:-webkit-full-screen .info,\n                #labirinto-jogo:-moz-full-screen .info,\n                #labirinto-jogo:-ms-fullscreen .info {\n                    gap: 6px;\n                    margin-bottom: 8px;\n                }\n                \n                #labirinto-jogo:fullscreen .info-box,\n                #labirinto-jogo:-webkit-full-screen .info-box,\n                #labirinto-jogo:-moz-full-screen .info-box,\n                #labirinto-jogo:-ms-fullscreen .info-box {\n                    padding: 8px 12px;\n                    min-width: auto;\n                    flex: 1;\n                }\n                \n                #labirinto-jogo:fullscreen .info-box label,\n                #labirinto-jogo:-webkit-full-screen .info-box label,\n                #labirinto-jogo:-moz-full-screen .info-box label,\n                #labirinto-jogo:-ms-fullscreen .info-box label {\n                    font-size: 0.7em;\n                }\n                \n                #labirinto-jogo:fullscreen .dif-btns,\n                #labirinto-jogo:-webkit-full-screen .dif-btns,\n                #labirinto-jogo:-moz-full-screen .dif-btns,\n                #labirinto-jogo:-ms-fullscreen .dif-btns {\n                    margin-bottom: 8px;\n                    gap: 6px;\n                }\n                \n                #labirinto-jogo:fullscreen .dif-btn,\n                #labirinto-jogo:-webkit-full-screen .dif-btn,\n                #labirinto-jogo:-moz-full-screen .dif-btn,\n                #labirinto-jogo:-ms-fullscreen .dif-btn {\n                    padding: 6px 10px;\n                    font-size: 0.8em;\n                }\n                \n                #labirinto-jogo:fullscreen .maze-area,\n                #labirinto-jogo:-webkit-full-screen .maze-area,\n                #labirinto-jogo:-moz-full-screen .maze-area,\n                #labirinto-jogo:-ms-fullscreen .maze-area {\n                    padding: 8px;\n                }\n                \n                #labirinto-jogo:fullscreen .controls-section,\n                #labirinto-jogo:-webkit-full-screen .controls-section,\n                #labirinto-jogo:-moz-full-screen .controls-section,\n                #labirinto-jogo:-ms-fullscreen .controls-section {\n                    padding: 8px;\n                }\n                \n                #labirinto-jogo:fullscreen .cmd-btns,\n                #labirinto-jogo:-webkit-full-screen .cmd-btns,\n                #labirinto-jogo:-moz-full-screen .cmd-btns,\n                #labirinto-jogo:-ms-fullscreen .cmd-btns {\n                    gap: 6px;\n                }\n                \n                #labirinto-jogo:fullscreen .cmd-btn,\n                #labirinto-jogo:-webkit-full-screen .cmd-btn,\n                #labirinto-jogo:-moz-full-screen .cmd-btn,\n                #labirinto-jogo:-ms-fullscreen .cmd-btn {\n                    padding: 10px;\n                    font-size: 0.9em;\n                }\n                \n                #labirinto-jogo:fullscreen .action-btn,\n                #labirinto-jogo:-webkit-full-screen .action-btn,\n                #labirinto-jogo:-moz-full-screen .action-btn,\n                #labirinto-jogo:-ms-fullscreen .action-btn {\n                    padding: 12px 16px;\n                    font-size: 0.85em;\n                }\n            }\n            \n            #labirinto-jogo .btn-fullscreen {\n                position: absolute;\n                top: 10px;\n                right: 10px;\n                background: linear-gradient(135deg, #009739, #003d82);\n                color: white;\n                border: none;\n                border-radius: 8px;\n                padding: 8px 12px;\n                cursor: pointer;\n                font-size: 1.2em;\n                z-index: 1000;\n                box-shadow: 0 2px 8px rgba(0,0,0,0.2);\n            }\n            \n            #labirinto-jogo .btn-fullscreen:hover {\n                opacity: 0.9;\n                transform: scale(1.05);\n            }\n            \n            \/* Esconder bot\u00e3o fullscreen no mobile *\/\n            @media (max-width: 768px) {\n                #labirinto-jogo .btn-fullscreen {\n                    display: none !important;\n                }\n            }\n            \n            #labirinto-jogo.fullscreen {\n                position: fixed;\n                top: 0;\n                left: 0;\n                width: 100vw;\n                height: 100vh;\n                max-width: 100vw;\n                margin: 0;\n                border-radius: 0;\n                z-index: 99999;\n                overflow-y: auto;\n                padding: 20px;\n            }\n            \n            #labirinto-jogo .instructions { background: #e8f5e9; padding: 10px 12px; border-radius: 8px; border-left: 4px solid #009739; margin-bottom: 12px; text-align: center; }\n            #labirinto-jogo .instructions p { color: #003d82; font-size: 0.9em; }\n            #labirinto-jogo .info { display: flex; justify-content: space-around; margin-bottom: 15px; flex-wrap: wrap; gap: 8px; }\n            #labirinto-jogo .info-box { background: linear-gradient(135deg, #009739, #003d82); color: white; padding: 10px 16px; border-radius: 8px; text-align: center; min-width: 110px; }\n            #labirinto-jogo .info-box-total { background: linear-gradient(135deg, #6c757d, #495057); }\n            #labirinto-jogo .info-box label { display: block; font-size: 0.85em; margin-bottom: 5px; }\n            #labirinto-jogo .info-box span { font-size: 1.4em; font-weight: bold; }\n            \n            #labirinto-jogo .game-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; align-items: start; }\n            \n            #labirinto-jogo .left-panel { display: flex; flex-direction: column; gap: 20px; }\n            #labirinto-jogo .right-panel { display: flex; flex-direction: column; gap: 15px; }\n            \n            #labirinto-jogo .dif-btns { display: flex; justify-content: center; gap: 8px; flex-wrap: wrap; }\n            #labirinto-jogo .dif-btn { padding: 8px 16px; border: 2px solid #009739; background: white; color: #009739; border-radius: 20px; cursor: pointer; font-weight: bold; font-size: 0.9em; }\n            #labirinto-jogo .dif-btn.active { background: #009739; color: white; }\n            #labirinto-jogo .maze-area { background: #f5f5f5; padding: 15px; border-radius: 10px; display: flex; justify-content: center; align-items: center; min-height: 400px; }\n            #labirinto-jogo .maze-grid { display: grid; gap: 2px; background: #ccc; padding: 2px; border-radius: 8px; }\n            #labirinto-jogo .cell { width: 40px; height: 40px; background: white; display: flex; align-items: center; justify-content: center; font-size: 1.3em; border-radius: 2px; }\n            #labirinto-jogo .cell.wall { background: #003d82; }\n            #labirinto-jogo .cell.start { background: #009739; }\n            #labirinto-jogo .cell.end { background: #ffd700; }\n            #labirinto-jogo .cell.energy { \n                background: linear-gradient(135deg, #00d4ff, #0099ff); \n                animation: energy-pulse 1s infinite;\n            }\n            \n            @keyframes energy-pulse {\n                0%, 100% { box-shadow: 0 0 10px rgba(0, 212, 255, 0.5); }\n                50% { box-shadow: 0 0 20px rgba(0, 212, 255, 0.8); }\n            }\n            \n            @keyframes energize {\n                0% { \n                    background: #f5f5f5;\n                }\n                25% { \n                    background: rgba(0, 212, 255, 0.15);\n                }\n                50% { \n                    background: rgba(0, 212, 255, 0.25);\n                }\n                75% { \n                    background: rgba(0, 212, 255, 0.15);\n                }\n                100% { \n                    background: #f5f5f5;\n                }\n            }\n            \n            @keyframes cell-energize {\n                0%, 100% { \n                    filter: brightness(1);\n                    box-shadow: none;\n                }\n                50% { \n                    filter: brightness(1.5) saturate(2);\n                    box-shadow: 0 0 15px rgba(0, 212, 255, 1), inset 0 0 15px rgba(0, 212, 255, 0.8);\n                }\n            }\n            \n            @keyframes confetti-fall {\n                0% {\n                    transform: translate(0, 0) rotate(0deg) scale(0);\n                    opacity: 0;\n                }\n                5% {\n                    opacity: 1;\n                    transform: translate(0, 0) rotate(45deg) scale(1.2);\n                }\n                100% {\n                    transform: translate(calc(var(--spread-x) * 1px), calc(var(--spread-y) * 1px)) rotate(720deg) scale(0.5);\n                    opacity: 0;\n                }\n            }\n            \n            .confetti {\n                position: fixed;\n                width: 15px;\n                height: 15px;\n                opacity: 0;\n                z-index: 999999;\n                pointer-events: none;\n                border-radius: 2px;\n            }\n            \n            .confetti.active {\n                animation: confetti-fall 2s ease-in forwards;\n            }\n            \n            #labirinto-jogo .maze-area.energized {\n                animation: energize 1.2s ease-in-out;\n            }\n            \n            #labirinto-jogo .maze-area.energized .cell {\n                animation: cell-energize 1.2s ease-in-out;\n            }\n            \n            #labirinto-jogo .maze-area.energized .cell.wall {\n                animation: cell-energize 1.2s ease-in-out;\n                filter: brightness(1.3) hue-rotate(180deg);\n            }\n            #labirinto-jogo .cell img { width: 85%; height: 85%; object-fit: contain; transition: transform 0.3s; }\n            \n            #labirinto-jogo .controls-section { background: #f5f5f5; padding: 15px; border-radius: 10px; }\n            #labirinto-jogo .controls-section h3 { color: #003d82; font-size: 1.1em; margin: 0 0 12px 0; text-align: center; }\n            \n            #labirinto-jogo .cmd-btns { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 12px; }\n            #labirinto-jogo .cmd-btn { padding: 12px 16px; background: linear-gradient(135deg, #009739, #003d82); color: white; border: none; border-radius: 8px; cursor: pointer; font-weight: bold; font-size: 0.95em; }\n            #labirinto-jogo .cmd-btn:hover { opacity: 0.9; transform: translateY(-2px); transition: all 0.2s; }\n            \n            #labirinto-jogo .cmd-list { background: white; padding: 12px; border-radius: 8px; margin-bottom: 12px; min-height: 100px; border: 2px solid #e0e0e0; }\n            #labirinto-jogo .cmd-list h4 { color: #003d82; font-size: 0.85em; margin: 0 0 8px 0; }\n            #labirinto-jogo .cmds { display: flex; gap: 5px; flex-wrap: wrap; }\n            #labirinto-jogo .cmd-item { background: white; padding: 6px 8px; border: 2px solid #009739; border-radius: 4px; color: #003d82; font-weight: bold; font-size: 1.3em; line-height: 1; display: flex; align-items: center; gap: 4px; }\n            #labirinto-jogo .cmd-item span { cursor: pointer; color: #ff4444; margin-left: 2px; font-size: 0.7em; }\n            \n            #labirinto-jogo .action-btns { display: flex; flex-direction: column; gap: 6px; }\n            #labirinto-jogo .action-btn { padding: 12px 16px; border: none; border-radius: 8px; cursor: pointer; font-weight: bold; font-size: 0.95em; }\n            #labirinto-jogo .action-btn:hover { transform: translateY(-2px); transition: all 0.2s; box-shadow: 0 5px 15px rgba(0,0,0,0.2); }\n            #labirinto-jogo .btn-exec { background: #009739; color: white; }\n            #labirinto-jogo .btn-clear { background: #ff6b6b; color: white; }\n            #labirinto-jogo .btn-new { background: #003d82; color: white; }\n            \n            #labirinto-jogo .msg { text-align: center; padding: 10px; border-radius: 8px; margin: 10px 0; font-weight: bold; display: none; }\n            #labirinto-jogo .msg.show { display: block; }\n            #labirinto-jogo .msg.success { background: #d4edda; color: #155724; }\n            #labirinto-jogo .msg.error { background: #f8d7da; color: #721c24; }\n            \n            #labirinto-jogo .energy-warning {\n                display: none;\n                background: linear-gradient(135deg, #00d4ff, #0099ff);\n                color: white;\n                padding: 10px 15px;\n                border-radius: 10px;\n                text-align: center;\n                font-weight: bold;\n                margin: 10px 0;\n                box-shadow: 0 3px 15px rgba(0, 153, 255, 0.4);\n                animation: warning-pulse 2s infinite;\n            }\n            #labirinto-jogo .energy-warning.show { display: block; }\n            \n            @keyframes warning-pulse {\n                0%, 100% { transform: scale(1); opacity: 1; }\n                50% { transform: scale(1.02); opacity: 0.9; }\n            }\n            \n            #labirinto-jogo .victory-overlay {\n                display: none;\n            }\n            \n            \/* Overlay apenas em fullscreen *\/\n            #labirinto-jogo:fullscreen .victory-overlay.show,\n            #labirinto-jogo:-webkit-full-screen .victory-overlay.show,\n            #labirinto-jogo:-moz-full-screen .victory-overlay.show,\n            #labirinto-jogo:-ms-fullscreen .victory-overlay.show,\n            #labirinto-jogo.fullscreen-mobile .victory-overlay.show {\n                display: block;\n                position: fixed;\n                top: 0;\n                left: 0;\n                width: 100vw;\n                height: 100vh;\n                background: rgba(0, 0, 0, 0.5);\n                z-index: 9999;\n                backdrop-filter: blur(3px);\n            }\n            \n            \/* Bot\u00e3o no modo normal - inline *\/\n            #labirinto-jogo .next-challenge-btn { \n                display: none; \n                margin: 15px auto;\n                padding: 18px 40px; \n                background: linear-gradient(135deg, #ffd700, #ffaa00); \n                color: #333; \n                border: none; \n                border-radius: 12px; \n                cursor: pointer; \n                font-weight: bold; \n                font-size: 1.1em; \n                box-shadow: 0 5px 20px rgba(255, 170, 0, 0.4);\n                animation: pulse-glow 1.5s infinite;\n            }\n            \n            #labirinto-jogo .next-challenge-btn.show { \n                display: block; \n            }\n            \n            #labirinto-jogo .next-challenge-btn:hover { \n                transform: translateY(-3px); \n                box-shadow: 0 8px 25px rgba(255, 170, 0, 0.6);\n            }\n            \n            \/* Bot\u00e3o em fullscreen - centralizado fixo *\/\n            #labirinto-jogo:fullscreen .next-challenge-btn.show,\n            #labirinto-jogo:-webkit-full-screen .next-challenge-btn.show,\n            #labirinto-jogo:-moz-full-screen .next-challenge-btn.show,\n            #labirinto-jogo:-ms-fullscreen .next-challenge-btn.show,\n            #labirinto-jogo.fullscreen-mobile .next-challenge-btn.show {\n                position: fixed;\n                top: 50%;\n                left: 50%;\n                transform: translate(-50%, -50%);\n                z-index: 10000;\n                margin: 0;\n                box-shadow: 0 8px 30px rgba(255, 170, 0, 0.6);\n            }\n            \n            #labirinto-jogo:fullscreen .next-challenge-btn:hover,\n            #labirinto-jogo:-webkit-full-screen .next-challenge-btn:hover,\n            #labirinto-jogo:-moz-full-screen .next-challenge-btn:hover,\n            #labirinto-jogo:-ms-fullscreen .next-challenge-btn:hover,\n            #labirinto-jogo.fullscreen-mobile .next-challenge-btn:hover { \n                transform: translate(-50%, -50%) translateY(-3px); \n                box-shadow: 0 12px 35px rgba(255, 170, 0, 0.8);\n            }\n            \n            @keyframes pulse-glow {\n                0%, 100% { transform: scale(1); }\n                50% { transform: scale(1.05); }\n            }\n            \n            @media (max-width: 968px) {\n                #labirinto-jogo .game-layout { grid-template-columns: 1fr; }\n                #labirinto-jogo .cell { width: 35px; height: 35px; font-size: 1.2em; }\n                #labirinto-jogo .maze-area { min-height: 350px; }\n            }\n            \n            @media (max-width: 768px) {\n                #labirinto-jogo { padding: 12px; }\n                #labirinto-jogo .titulo { margin-bottom: 15px; }\n                #labirinto-jogo .titulo p { font-size: 1.1em; }\n                #labirinto-jogo .info { gap: 6px; margin-bottom: 12px; }\n                #labirinto-jogo .info-box { min-width: 90px; padding: 8px 12px; }\n                #labirinto-jogo .info-box label { font-size: 0.75em; }\n                #labirinto-jogo .info-box span { font-size: 1.1em; }\n                #labirinto-jogo .dif-btns { gap: 6px; margin-bottom: 12px; }\n                #labirinto-jogo .dif-btn { padding: 7px 14px; font-size: 0.8em; }\n                #labirinto-jogo .cell { width: 32px; height: 32px; font-size: 1.1em; }\n                #labirinto-jogo .maze-area { padding: 12px; min-height: 300px; }\n                #labirinto-jogo .controls-section { padding: 12px; }\n                #labirinto-jogo .controls-section h3 { font-size: 0.95em; margin-bottom: 10px; }\n                #labirinto-jogo .cmd-btn { padding: 10px 12px; font-size: 0.85em; }\n                #labirinto-jogo .cmd-list { padding: 10px; min-height: 70px; margin-bottom: 10px; }\n                #labirinto-jogo .cmd-list h4 { font-size: 0.85em; margin-bottom: 8px; }\n                #labirinto-jogo .action-btns { gap: 6px; }\n                #labirinto-jogo .action-btn { padding: 10px 12px; font-size: 0.85em; }\n                #labirinto-jogo .instructions { padding: 10px 12px; margin-top: 0; margin-bottom: 12px; }\n                #labirinto-jogo .instructions p { font-size: 0.8em; }\n            }\n            \n            @media (max-width: 600px) {\n                #labirinto-jogo { padding: 8px; margin: 8px auto; max-width: 100%; }\n                #labirinto-jogo .titulo { margin-bottom: 10px; }\n                #labirinto-jogo .titulo p { font-size: 1em; }\n                \n                \/* Info boxes MUITO compactas - 4 em linha *\/\n                #labirinto-jogo .info { gap: 4px; margin-bottom: 10px; }\n                #labirinto-jogo .info-box { \n                    min-width: auto; \n                    flex: 1; \n                    padding: 6px 4px; \n                    border-radius: 6px;\n                }\n                #labirinto-jogo .info-box label { font-size: 0.65em; margin-bottom: 2px; }\n                #labirinto-jogo .info-box span { font-size: 0.9em; }\n                \n                \/* Bot\u00f5es de dificuldade mais compactos *\/\n                #labirinto-jogo .dif-btns { gap: 4px; margin-bottom: 10px; }\n                #labirinto-jogo .dif-btn { padding: 5px 10px; font-size: 0.75em; border-radius: 15px; }\n                \n                \/* Labirinto - prioridade m\u00e1xima *\/\n                #labirinto-jogo .maze-area { padding: 8px; min-height: 250px; margin-bottom: 10px; }\n                #labirinto-jogo .cell { width: 26px; height: 26px; font-size: 0.95em; }\n                \n                \/* Comandos - grid 2x2 compacto *\/\n                #labirinto-jogo .controls-section { padding: 10px; }\n                #labirinto-jogo .controls-section h3 { font-size: 0.85em; margin-bottom: 8px; }\n                #labirinto-jogo .cmd-btns { gap: 6px; margin-bottom: 10px; }\n                #labirinto-jogo .cmd-btn { padding: 12px 8px; font-size: 0.8em; }\n                \n                \/* Lista de comandos compacta *\/\n                #labirinto-jogo .cmd-list { padding: 8px; min-height: 60px; margin-bottom: 8px; }\n                #labirinto-jogo .cmd-list h4 { font-size: 0.75em; margin-bottom: 6px; }\n                #labirinto-jogo .cmd-item { padding: 4px 6px; font-size: 0.75em; }\n                \n                \/* Bot\u00f5es de a\u00e7\u00e3o compactos *\/\n                #labirinto-jogo .action-btns { gap: 5px; }\n                #labirinto-jogo .action-btn { padding: 8px 10px; font-size: 0.8em; border-radius: 6px; }\n                \n                \/* Mensagens compactas *\/\n                #labirinto-jogo .msg { font-size: 0.85em; padding: 8px; margin: 8px 0; }\n                #labirinto-jogo .energy-warning { font-size: 0.8em; padding: 8px 12px; margin: 8px 0; }\n                #labirinto-jogo .next-challenge-btn { padding: 10px 20px; font-size: 0.85em; margin: 10px auto; }\n                \n                \/* Instru\u00e7\u00f5es no topo - compactas *\/\n                #labirinto-jogo .instructions { padding: 8px 10px; margin-top: 0; margin-bottom: 10px; }\n                #labirinto-jogo .instructions p { font-size: 0.75em; line-height: 1.4; }\n            }\n            \n            @media (max-width: 480px) {\n                #labirinto-jogo .cell { width: 24px; height: 24px; font-size: 0.9em; }\n                #labirinto-jogo .maze-area { min-height: 220px; }\n                #labirinto-jogo .info-box { padding: 5px 3px; }\n                #labirinto-jogo .info-box label { font-size: 0.6em; }\n                #labirinto-jogo .info-box span { font-size: 0.85em; }\n            }\n            \n            @media (max-width: 400px) {\n                #labirinto-jogo .cell { width: 22px; height: 22px; font-size: 0.85em; }\n                #labirinto-jogo .maze-area { min-height: 200px; padding: 6px; }\n                #labirinto-jogo .info-box { min-width: auto; }\n                #labirinto-jogo .dif-btn { padding: 4px 8px; font-size: 0.7em; }\n            }\n        <\/style>\n        \n        <h2 class=\"fullscreen-title\">Labirinto de Programa\u00e7\u00e3o<\/h2>\n        \n        <div class=\"titulo\">\n            <p style=\"color: #666; margin: 0; font-size: 1.2em; font-weight: bold;\">Programe o IAGO para encontrar a sa\u00edda!<\/p>\n        <\/div>\n        \n        <div class=\"instructions\">\n            <p style=\"margin: 0; line-height: 1.5;\"><strong>\ud83d\udcda Como Jogar:<\/strong> Use os comandos Cima, Baixo, Esquerda e Direita para mover o IAGO. Cuidado com as paredes azuis! Planeje toda a sequ\u00eancia antes de executar.<\/p>\n        <\/div>\n        \n        <div class=\"info\">\n            <div class=\"info-box info-box-total\"><label>Labirintos Feitos<\/label><span class=\"level-num\">0<\/span><\/div>\n            <div class=\"info-box\"><label>Tempo<\/label><span class=\"timer\">00:00<\/span><\/div>\n            <div class=\"info-box\"><label>Comandos<\/label><span class=\"cmd-count\">0<\/span><\/div>\n        <\/div>\n        \n        <div class=\"dif-btns\">\n            <button class=\"dif-btn active\" data-size=\"5\">F\u00e1cil (5\u00d75)<\/button>\n            <button class=\"dif-btn\" data-size=\"8\">M\u00e9dio (8\u00d78)<\/button>\n            <button class=\"dif-btn\" data-size=\"10\">Dif\u00edcil (10\u00d710)<\/button>\n        <\/div>\n        \n        <div class=\"msg\"><\/div>\n        <div class=\"energy-warning\" id=\"energy-warning\">\u26a1 ATEN\u00c7\u00c3O: Colete a energia antes de sair!<\/div>\n        <div class=\"victory-overlay\" id=\"victory-overlay\"><\/div>\n        <button class=\"next-challenge-btn\" id=\"next-challenge\">\ud83c\udfaf Pr\u00f3ximo Desafio<\/button>\n        \n        <div class=\"game-layout\">\n            <div class=\"left-panel\">\n                <div class=\"maze-area\"><div class=\"maze-grid\"><\/div><\/div>\n            <\/div>\n            \n            <div class=\"right-panel\">\n                <div class=\"controls-section\">\n                    <h3>\ud83c\udfae Comandos de Movimento<\/h3>\n                    <div class=\"cmd-btns\">\n                        <button class=\"cmd-btn\" data-cmd=\"up\">\u2b06\ufe0f Cima<\/button>\n                        <button class=\"cmd-btn\" data-cmd=\"down\">\u2b07\ufe0f Baixo<\/button>\n                        <button class=\"cmd-btn\" data-cmd=\"left\">\u2b05\ufe0f Esquerda<\/button>\n                        <button class=\"cmd-btn\" data-cmd=\"right\">\u27a1\ufe0f Direita<\/button>\n                    <\/div>\n                <\/div>\n                \n                <div class=\"cmd-list\">\n                    <h4>\ud83d\udccb Sequ\u00eancia Programada:<\/h4>\n                    <div class=\"cmds\"><em style=\"color: #999;\">Nenhum comando adicionado<\/em><\/div>\n                <\/div>\n                \n                <div class=\"action-btns\">\n                    <button class=\"action-btn btn-exec\">\u25b6\ufe0f Executar Programa<\/button>\n                    <button class=\"action-btn btn-clear\">\ud83d\uddd1\ufe0f Limpar Comandos<\/button>\n                    <button class=\"action-btn btn-new\">\ud83d\udd04 Novo Labirinto<\/button>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <script>\n    jQuery(function($) {\n        var g = {\n            size: 5,\n            grid: [],\n            robot: { x: 0, y: 0, dir: 0 },\n            end: { x: 4, y: 4 },\n            energy: null,\n            hasEnergy: false,\n            commands: [],\n            challenges: 0,\n            running: false,\n            timerInterval: null,\n            timerSeconds: 0\n        };\n        \n        \n        \/\/ Fun\u00e7\u00f5es do cron\u00f4metro\n        function startTimer() {\n            if (g.timerInterval) return; \/\/ J\u00e1 est\u00e1 rodando\n            g.timerInterval = setInterval(function() {\n                g.timerSeconds++;\n                updateTimerDisplay();\n            }, 1000);\n        }\n        \n        function stopTimer() {\n            if (g.timerInterval) {\n                clearInterval(g.timerInterval);\n                g.timerInterval = null;\n            }\n        }\n        \n        function resetTimer() {\n            stopTimer();\n            g.timerSeconds = 0;\n            updateTimerDisplay();\n        }\n        \n        function updateTimerDisplay() {\n            var minutes = Math.floor(g.timerSeconds \/ 60);\n            var seconds = g.timerSeconds % 60;\n            var display = (minutes < 10 ? '0' : '') + minutes + ':' + (seconds < 10 ? '0' : '') + seconds;\n            $('.timer').text(display);\n        }\n        \n        function gen() {\n            g.grid = [];\n            for (var i = 0; i < g.size; i++) {\n                g.grid[i] = [];\n                for (var j = 0; j < g.size; j++) {\n                    g.grid[i][j] = 0;\n                }\n            }\n            g.robot = { x: 0, y: 0, dir: 0 };\n            \n            \/\/ Define posi\u00e7\u00e3o da sa\u00edda baseado na dificuldade\n            if (g.size === 5) {\n                \/\/ F\u00c1CIL: Sa\u00edda sempre em um dos cantos (exceto in\u00edcio)\n                var corners = [\n                    { x: g.size - 1, y: 0 },           \/\/ Canto superior direito\n                    { x: 0, y: g.size - 1 },           \/\/ Canto inferior esquerdo\n                    { x: g.size - 1, y: g.size - 1 }   \/\/ Canto inferior direito\n                ];\n                g.end = corners[Math.floor(Math.random() * corners.length)];\n            } else {\n                \/\/ M\u00c9DIO e DIF\u00cdCIL: Sa\u00edda aleat\u00f3ria com dist\u00e2ncia m\u00ednima\n                var minDistance = Math.floor(g.size \/ 2);\n                var possibleEnds = [];\n                \n                for (var i = 0; i < g.size; i++) {\n                    for (var j = 0; j < g.size; j++) {\n                        \/\/ N\u00e3o pode ser a posi\u00e7\u00e3o inicial\n                        if (!(i === 0 && j === 0)) {\n                            \/\/ Calcula dist\u00e2ncia Manhattan\n                            var distance = Math.abs(j - 0) + Math.abs(i - 0);\n                            \/\/ S\u00f3 adiciona se a dist\u00e2ncia for maior que o m\u00ednimo\n                            if (distance >= minDistance) {\n                                possibleEnds.push({ x: j, y: i });\n                            }\n                        }\n                    }\n                }\n                \n                var randomEnd = possibleEnds[Math.floor(Math.random() * possibleEnds.length)];\n                g.end = randomEnd;\n            }\n            \n            \/\/ Gera caminho garantido do in\u00edcio at\u00e9 a sa\u00edda usando BFS\n            var queue = [{ x: 0, y: 0, path: [{ x: 0, y: 0 }] }];\n            var visited = {};\n            visited['0,0'] = true;\n            var finalPath = [];\n            \n            while (queue.length > 0) {\n                var current = queue.shift();\n                \n                if (current.x === g.end.x && current.y === g.end.y) {\n                    finalPath = current.path;\n                    break;\n                }\n                \n                var dirs = [\n                    { dx: 0, dy: -1 }, \/\/ cima\n                    { dx: 1, dy: 0 },  \/\/ direita\n                    { dx: 0, dy: 1 },  \/\/ baixo\n                    { dx: -1, dy: 0 }  \/\/ esquerda\n                ];\n                \n                \/\/ Embaralha dire\u00e7\u00f5es para caminho mais variado\n                for (var i = dirs.length - 1; i > 0; i--) {\n                    var j = Math.floor(Math.random() * (i + 1));\n                    var temp = dirs[i];\n                    dirs[i] = dirs[j];\n                    dirs[j] = temp;\n                }\n                \n                for (var d = 0; d < dirs.length; d++) {\n                    var nx = current.x + dirs[d].dx;\n                    var ny = current.y + dirs[d].dy;\n                    var key = nx + ',' + ny;\n                    \n                    if (nx >= 0 && nx < g.size && ny >= 0 && ny < g.size && !visited[key]) {\n                        visited[key] = true;\n                        var newPath = current.path.slice();\n                        newPath.push({ x: nx, y: ny });\n                        queue.push({ x: nx, y: ny, path: newPath });\n                    }\n                }\n            }\n            \n            \/\/ Marca o caminho como livre\n            var pathSet = {};\n            for (var i = 0; i < finalPath.length; i++) {\n                pathSet[finalPath[i].x + ',' + finalPath[i].y] = true;\n            }\n            \n            \/\/ Adiciona paredes aleat\u00f3rias apenas fora do caminho\n            \/\/ Modo dif\u00edcil tem mais paredes (45% vs 35%)\n            var wallChance = g.size === 10 ? 0.45 : 0.35;\n            for (var i = 0; i < g.size; i++) {\n                for (var j = 0; j < g.size; j++) {\n                    var key = j + ',' + i;\n                    if (!pathSet[key] && Math.random() < wallChance) {\n                        g.grid[i][j] = 1;\n                    }\n                }\n            }\n            \n            \/\/ Adiciona energia apenas no modo dif\u00edcil (10x10)\n            g.energy = null;\n            g.hasEnergy = false;\n            if (g.size === 10) {\n                \/\/ Procura c\u00e9lulas livres que est\u00e3o FORA do caminho direto\n                var offPathCells = [];\n                \n                for (var i = 0; i < g.size; i++) {\n                    for (var j = 0; j < g.size; j++) {\n                        var key = j + ',' + i;\n                        \/\/ N\u00e3o pode ser parede, in\u00edcio, fim, nem estar no caminho direto\n                        if (g.grid[i][j] !== 1 && \n                            !(i === 0 && j === 0) && \n                            !(i === g.end.y && j === g.end.x) &&\n                            !pathSet[key]) {\n                            offPathCells.push({ x: j, y: i });\n                        }\n                    }\n                }\n                \n                \/\/ Testa cada c\u00e9lula para verificar se \u00e9 alcan\u00e7\u00e1vel\n                var energyOptions = [];\n                for (var c = 0; c < offPathCells.length; c++) {\n                    var testCell = offPathCells[c];\n                    \n                    \/\/ BFS para verificar se \u00e9 alcan\u00e7\u00e1vel do in\u00edcio (pode passar pela sa\u00edda)\n                    var queue = [{ x: 0, y: 0 }];\n                    var visited = {};\n                    visited['0,0'] = true;\n                    var reachable = false;\n                    \n                    while (queue.length > 0 && !reachable) {\n                        var current = queue.shift();\n                        \n                        if (current.x === testCell.x && current.y === testCell.y) {\n                            reachable = true;\n                            break;\n                        }\n                        \n                        var dirs = [{dx:0,dy:-1},{dx:1,dy:0},{dx:0,dy:1},{dx:-1,dy:0}];\n                        for (var d = 0; d < dirs.length; d++) {\n                            var nx = current.x + dirs[d].dx;\n                            var ny = current.y + dirs[d].dy;\n                            var nkey = nx + ',' + ny;\n                            \n                            if (nx >= 0 && nx < g.size && ny >= 0 && ny < g.size && \n                                !visited[nkey] && g.grid[ny][nx] !== 1) {\n                                visited[nkey] = true;\n                                queue.push({ x: nx, y: ny });\n                            }\n                        }\n                    }\n                    \n                    \/\/ Se alcan\u00e7\u00e1vel, verifica se h\u00e1 caminho alternativo que n\u00e3o passa pela sa\u00edda\n                    if (reachable) {\n                        \/\/ Faz segundo BFS: do in\u00edcio at\u00e9 a energia SEM passar pela sa\u00edda\n                        var queue2 = [{ x: 0, y: 0 }];\n                        var visited2 = {};\n                        visited2['0,0'] = true;\n                        var reachableWithoutExit = false;\n                        \n                        while (queue2.length > 0 && !reachableWithoutExit) {\n                            var curr = queue2.shift();\n                            \n                            if (curr.x === testCell.x && curr.y === testCell.y) {\n                                reachableWithoutExit = true;\n                                break;\n                            }\n                            \n                            var dirs2 = [{dx:0,dy:-1},{dx:1,dy:0},{dx:0,dy:1},{dx:-1,dy:0}];\n                            for (var d2 = 0; d2 < dirs2.length; d2++) {\n                                var nx2 = curr.x + dirs2[d2].dx;\n                                var ny2 = curr.y + dirs2[d2].dy;\n                                var nkey2 = nx2 + ',' + ny2;\n                                \n                                \/\/ Bloqueia a sa\u00edda nesta busca\n                                if (nx2 === g.end.x && ny2 === g.end.y) {\n                                    continue;\n                                }\n                                \n                                if (nx2 >= 0 && nx2 < g.size && ny2 >= 0 && ny2 < g.size && \n                                    !visited2[nkey2] && g.grid[ny2][nx2] !== 1) {\n                                    visited2[nkey2] = true;\n                                    queue2.push({ x: nx2, y: ny2 });\n                                }\n                            }\n                        }\n                        \n                        \/\/ S\u00f3 adiciona se for alcan\u00e7\u00e1vel SEM passar pela sa\u00edda\n                        if (reachableWithoutExit) {\n                            var distFromStart = Math.abs(testCell.x - 0) + Math.abs(testCell.y - 0);\n                            var distFromEnd = Math.abs(testCell.x - g.end.x) + Math.abs(testCell.y - g.end.y);\n                            \n                            \/\/ Dist\u00e2ncia m\u00ednima de 3 de ambos\n                            if (distFromStart >= 3 && distFromEnd >= 3) {\n                                energyOptions.push(testCell);\n                            }\n                        }\n                    }\n                }\n                \n                if (energyOptions.length > 0) {\n                    var energyIndex = Math.floor(Math.random() * energyOptions.length);\n                    g.energy = energyOptions[energyIndex];\n                }\n            }\n        }\n        \n        function draw() {\n            var $gr = $('#labirinto-jogo .maze-grid');\n            $gr.empty().css('grid-template-columns', 'repeat(' + g.size + ', 1fr)');\n            \n            \/\/ Mostra ou esconde aviso de energia\n            if (g.energy && !g.hasEnergy) {\n                showEnergyWarning();\n            } else {\n                hideEnergyWarning();\n            }\n            \n            for (var y = 0; y < g.size; y++) {\n                for (var x = 0; x < g.size; x++) {\n                    var $c = $('<div>').addClass('cell');\n                    \n                    if (g.grid[y][x] === 1) {\n                        $c.addClass('wall');\n                    } else if (x === g.robot.x && y === g.robot.y) {\n                        var $i = $('<img>')\n                            .attr('src', 'https:\/\/siminova.com.br\/blog\/wp-content\/uploads\/Mascote-2-menor.png')\n                            .attr('alt', 'IAGO');\n                        $c.append($i);\n                    } else if (x === g.end.x && y === g.end.y) {\n                        $c.addClass('end').text('\ud83c\udfc1');\n                    } else if (x === 0 && y === 0) {\n                        $c.addClass('start').text('\ud83c\udfe0');\n                    } else if (g.energy && x === g.energy.x && y === g.energy.y && !g.hasEnergy) {\n                        $c.addClass('energy').text('\u26a1');\n                    }\n                    \n                    $gr.append($c);\n                }\n            }\n        }\n        \n        function upd() {\n            var $l = $('#labirinto-jogo .cmds');\n            $('#labirinto-jogo .cmd-count').text(g.commands.length);\n            \n            if (g.commands.length === 0) {\n                $l.html('<em style=\"color: #999;\">Nenhum comando adicionado<\/em>');\n                return;\n            }\n            \n            $l.empty();\n            $.each(g.commands, function(i, c) {\n                var icon = c === 'up' ? '\u2b06\ufe0f' : c === 'down' ? '\u2b07\ufe0f' : c === 'left' ? '\u2b05\ufe0f' : '\u27a1\ufe0f';\n                \n                var $it = $('<div>').addClass('cmd-item').text(icon);\n                var $rm = $('<span>').text('\u2716').click(function() {\n                    if (g.running) return;\n                    g.commands.splice(i, 1);\n                    upd();\n                });\n                $it.append($rm);\n                $l.append($it);\n            });\n        }\n        \n        function msg(t, ty) {\n            $('#labirinto-jogo .msg').text(t).removeClass().addClass('msg show ' + ty);\n        }\n        \n        function hide() {\n            $('#labirinto-jogo .msg').removeClass('show');\n        }\n        \n        function showNextButton() {\n            $('#next-challenge').addClass('show');\n            $('#victory-overlay').addClass('show');\n        }\n        \n        function hideNextButton() {\n            $('#next-challenge').removeClass('show');\n            $('#victory-overlay').removeClass('show');\n        }\n        \n        function showEnergyWarning() {\n            $('#energy-warning').addClass('show');\n        }\n        \n        function hideEnergyWarning() {\n            $('#energy-warning').removeClass('show');\n        }\n        \n        function createConfetti() {\n            var colors = ['#FDB913', '#6AB43E']; \/\/ Amarelo e verde do logo\n            \n            \/\/ Cria 150 confetes caindo de cima\n            for (var i = 0; i < 150; i++) {\n                var confetti = $('<div>').addClass('confetti');\n                var color = colors[Math.floor(Math.random() * colors.length)];\n                \n                \/\/ Posi\u00e7\u00e3o aleat\u00f3ria na largura da tela\n                var startX = Math.random() * window.innerWidth;\n                \n                \/\/ Varia\u00e7\u00e3o de queda (-100 a 100px horizontal)\n                var driftX = (Math.random() - 0.5) * 200;\n                \n                confetti.css({\n                    'background': color,\n                    'box-shadow': '0 0 10px ' + color,\n                    'left': startX + 'px',\n                    'top': '-50px',\n                    '--spread-x': driftX,\n                    '--spread-y': (Math.random() * 400 + 600), \/\/ Cai 600-1000px\n                    'animation-delay': Math.random() * 0.5 + 's',\n                    'animation-duration': (Math.random() * 1 + 2) + 's'\n                });\n                \n                $('body').append(confetti);\n                \n                setTimeout(function(el) {\n                    el.addClass('active');\n                }, 10, confetti);\n                \n                setTimeout(function(el) {\n                    el.remove();\n                }, 3500, confetti);\n            }\n        }\n        \n        function exec() {\n            if (g.running || g.commands.length === 0) return;\n            \n            \/\/ Scroll suave para o labirinto\n            var mazeArea = document.querySelector('#labirinto-jogo .maze-area');\n            if (mazeArea) {\n                mazeArea.scrollIntoView({ behavior: 'smooth', block: 'center' });\n            }\n            \n            g.running = true;\n            hide();\n            g.robot = { x: 0, y: 0, dir: 0 };\n            g.hasEnergy = false; \/\/ Reset energia\n            \n            var i = 0;\n            var m = 0;\n            \n            function step() {\n                if (i >= g.commands.length) {\n                    msg('\u26a0\ufe0f Quase l\u00e1! Adicione mais comandos.', 'error');\n                    g.running = false;\n                    \/\/ Volta automaticamente ao in\u00edcio ap\u00f3s 2 segundos\n                    setTimeout(function() {\n                        g.robot = { x: 0, y: 0, dir: 0 };\n                        g.hasEnergy = false; \/\/ Reset energia ao voltar\n                        draw();\n                    }, 2000);\n                    return;\n                }\n                \n                var c = g.commands[i];\n                m++;\n                \n                var nx = g.robot.x;\n                var ny = g.robot.y;\n                \n                \/\/ Movimentos direcionais fixos\n                if (c === 'up') {\n                    ny--;\n                    g.robot.dir = 0;\n                } else if (c === 'down') {\n                    ny++;\n                    g.robot.dir = 2;\n                } else if (c === 'left') {\n                    nx--;\n                    g.robot.dir = 3;\n                } else if (c === 'right') {\n                    nx++;\n                    g.robot.dir = 1;\n                }\n                \n                \/\/ Verifica colis\u00e3o\n                if (nx < 0 || nx >= g.size || ny < 0 || ny >= g.size || g.grid[ny][nx] === 1) {\n                    msg('\u274c O IAGO bateu na parede!', 'error');\n                    g.running = false;\n                    \/\/ Volta automaticamente ao in\u00edcio ap\u00f3s 2 segundos\n                    setTimeout(function() {\n                        g.robot = { x: 0, y: 0, dir: 0 };\n                        g.hasEnergy = false; \/\/ Reset energia ao voltar\n                        draw();\n                    }, 2000);\n                    return;\n                }\n                \n                g.robot.x = nx;\n                g.robot.y = ny;\n                \n                draw();\n                \n                \/\/ Verifica se coletou a energia\n                if (g.energy && g.robot.x === g.energy.x && g.robot.y === g.energy.y && !g.hasEnergy) {\n                    g.hasEnergy = true;\n                    hideEnergyWarning();\n                    \n                    \/\/ Efeito de energiza\u00e7\u00e3o do tabuleiro\n                    var $mazeArea = $('#labirinto-jogo .maze-area');\n                    $mazeArea.addClass('energized');\n                    \n                    msg('\u26a1 Energia coletada! Tabuleiro energizado!', 'success');\n                    \n                    \/\/ Pausa por 1.2s para mostrar o efeito\n                    setTimeout(function() {\n                        $mazeArea.removeClass('energized');\n                        hide();\n                        \/\/ Continua a execu\u00e7\u00e3o ap\u00f3s o efeito\n                        i++;\n                        setTimeout(step, 500);\n                    }, 1200);\n                    \n                    return; \/\/ Pausa aqui para mostrar o efeito\n                }\n                \n                if (g.robot.x === g.end.x && g.robot.y === g.end.y) {\n                    \/\/ Se tem energia no jogo, precisa ter coletado\n                    if (g.energy && !g.hasEnergy) {\n                        msg('\u26a0\ufe0f Voc\u00ea precisa coletar a energia \u26a1 antes de sair!', 'error');\n                        g.running = false;\n                        setTimeout(function() {\n                            g.robot = { x: 0, y: 0, dir: 0 };\n                            g.hasEnergy = false; \/\/ Reset energia ao voltar\n                            draw();\n                        }, 1000);\n                        return;\n                    }\n                    \n                    \/\/ Confetes de vit\u00f3ria caindo de cima!\n                    createConfetti();\n                    \n                    g.challenges++;\n                    stopTimer();\n                    msg('\ud83c\udf89 Parab\u00e9ns! Voc\u00ea completou o desafio em ' + $('.timer').text() + '!', 'success');\n                    $('#labirinto-jogo .level-num').text(g.challenges);\n                    \n                    \/\/ Mostra bot\u00e3o ap\u00f3s os confetes come\u00e7arem\n                    setTimeout(function() {\n                        showNextButton();\n                    }, 800);\n                    \n                    g.running = false;\n                    return;\n                }\n                \n                i++;\n                setTimeout(step, 500);\n            }\n            \n            step();\n        }\n        \n        \/\/ Event listeners\n        $('#labirinto-jogo .dif-btn').click(function() {\n            if (g.running) return;\n            g.size = parseInt($(this).data('size'));\n            $('#labirinto-jogo .dif-btn').removeClass('active');\n            $(this).addClass('active');\n            gen();\n            draw();\n            g.commands = [];\n            upd();\n            hide();\n            hideNextButton();\n            resetTimer();\n        });\n        \n        $('#labirinto-jogo .cmd-btn').click(function() {\n            if (g.running) return;\n            \n            \/\/ Inicia o cron\u00f4metro no primeiro comando\n            if (g.commands.length === 0) {\n                startTimer();\n            }\n            \n            g.commands.push($(this).data('cmd'));\n            upd();\n            hide();\n            hideNextButton();\n        });\n        \n        $('#labirinto-jogo .btn-exec').click(exec);\n        \n        $('#labirinto-jogo .btn-clear').click(function() {\n            if (g.running) return;\n            g.commands = [];\n            upd();\n            hide();\n            hideNextButton();\n            resetTimer();\n        });\n        \n        $('#labirinto-jogo .btn-new').click(function() {\n            if (g.running) return;\n            gen();\n            draw();\n            g.commands = [];\n            upd();\n            hide();\n            hideNextButton();\n            resetTimer();\n        });\n        \n        \/\/ Bot\u00e3o de pr\u00f3ximo desafio (aparece ap\u00f3s vit\u00f3ria)\n        $('#next-challenge').click(function() {\n            gen();\n            draw();\n            g.commands = [];\n            upd();\n            hide();\n            hideNextButton();\n            resetTimer();\n        });\n        \n        \/\/ Inicializa\n        gen();\n        draw();\n        \n        \/\/ Bot\u00e3o de tela cheia\n        $('#btn-fullscreen').click(function() {\n            var container = document.getElementById('labirinto-jogo');\n            var isMobile = \/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini\/i.test(navigator.userAgent);\n            \n            if (isMobile) {\n                \/\/ Mobile: simula fullscreen com CSS\n                var $container = $(container);\n                if ($container.hasClass('fullscreen-mobile')) {\n                    \/\/ Sair do fullscreen simulado\n                    $container.removeClass('fullscreen-mobile');\n                    $(this).text('\u26f6').attr('title', 'Tela Cheia');\n                    $('body').css('overflow', 'auto');\n                } else {\n                    \/\/ Entrar em fullscreen simulado\n                    $container.addClass('fullscreen-mobile');\n                    $(this).text('\u2715').attr('title', 'Sair da Tela Cheia');\n                    $('body').css('overflow', 'hidden');\n                    \/\/ Scroll para o topo\n                    window.scrollTo(0, 0);\n                }\n            } else {\n                \/\/ Desktop: usa API nativa de fullscreen\n                if (!document.fullscreenElement) {\n                    \/\/ Entrar em tela cheia\n                    if (container.requestFullscreen) {\n                        container.requestFullscreen();\n                    } else if (container.webkitRequestFullscreen) {\n                        container.webkitRequestFullscreen();\n                    } else if (container.mozRequestFullScreen) {\n                        container.mozRequestFullScreen();\n                    } else if (container.msRequestFullscreen) {\n                        container.msRequestFullscreen();\n                    }\n                } else {\n                    \/\/ Sair da tela cheia\n                    if (document.exitFullscreen) {\n                        document.exitFullscreen();\n                    } else if (document.webkitExitFullscreen) {\n                        document.webkitExitFullscreen();\n                    } else if (document.mozCancelFullScreen) {\n                        document.mozCancelFullScreen();\n                    } else if (document.msExitFullscreen) {\n                        document.msExitFullscreen();\n                    }\n                }\n            }\n        });\n        \n        \/\/ Detecta mudan\u00e7as de fullscreen e atualiza UI\n        $(document).on('fullscreenchange webkitfullscreenchange mozfullscreenchange MSFullscreenChange', function() {\n            var container = $('#labirinto-jogo');\n            var btn = $('#btn-fullscreen');\n            var title = $('.fullscreen-title');\n            \n            if (document.fullscreenElement || document.webkitFullscreenElement || \n                document.mozFullScreenElement || document.msFullscreenElement) {\n                container.addClass('fullscreen');\n                btn.text('\u2715').attr('title', 'Sair da Tela Cheia');\n                title.show().css('display', 'block');\n                console.log('Entrou em fullscreen - t\u00edtulo mostrado');\n            } else {\n                container.removeClass('fullscreen');\n                btn.text('\u26f6').attr('title', 'Tela Cheia');\n                title.hide();\n                console.log('Saiu de fullscreen - t\u00edtulo escondido');\n            }\n        });\n    });\n    <\/script>\n    \n    \n\n\n\n<p>\u2713 Atividade alinhada \u00e0 Base Nacional Comum Curricular (BNCC), BNCC da Computa\u00e7\u00e3o e aos Objetivos de Desenvolvimento Sustent\u00e1vel (ODS) da ONU. <a style=\"background-color: #e6c15a; color: #2f2f2f; padding: 4px 10px; border-radius: 3px; text-decoration: none; font-weight: 500; display: inline-block;\" href=\"https:\/\/siminova.com.br\/blog\/amigos\/alinhamento\/labirinto\/\"> \u203a Saiba mais <\/a><\/p>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>Vis\u00e3o Geral do Alinhamento<\/summary>\n<p class=\"has-small-font-size\">EI03ET04, EI03ET07, EF02MA12, EF03MA12, EF04MA03, EF05MA14, EF15LP18, EF06MA16, EF06MA23, EF08MA10, EF09MA16, EI03CO02, EI03CO03, EI03CO04, EI03CO05, EI03CO09, EF01CO02, EF01CO03, EF02CO02, EF03CO02, EF03CO03, EF03CO07, EF03CO08, EF04CO03, EF05CO04, EF06CO02, EF06CO03, EF06CO04, EF06CO05, EF07CO02, ODS 4, ODS 7, ODS 9 e ODS 12.<\/p>\n<\/details>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Programe o IAGO para encontrar a sa\u00edda!<\/p>\n<p><b> TR\u00caS N\u00cdVEIS<\/B><\/p>\n","protected":false},"author":8,"featured_media":4632,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_links_to":"","_links_to_target":""},"categories":[77],"tags":[79],"class_list":["post-4627","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-jogos","tag-notts"],"_links":{"self":[{"href":"https:\/\/siminova.com.br\/blog\/wp-json\/wp\/v2\/posts\/4627","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/siminova.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/siminova.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/siminova.com.br\/blog\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/siminova.com.br\/blog\/wp-json\/wp\/v2\/comments?post=4627"}],"version-history":[{"count":5,"href":"https:\/\/siminova.com.br\/blog\/wp-json\/wp\/v2\/posts\/4627\/revisions"}],"predecessor-version":[{"id":5162,"href":"https:\/\/siminova.com.br\/blog\/wp-json\/wp\/v2\/posts\/4627\/revisions\/5162"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/siminova.com.br\/blog\/wp-json\/wp\/v2\/media\/4632"}],"wp:attachment":[{"href":"https:\/\/siminova.com.br\/blog\/wp-json\/wp\/v2\/media?parent=4627"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/siminova.com.br\/blog\/wp-json\/wp\/v2\/categories?post=4627"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/siminova.com.br\/blog\/wp-json\/wp\/v2\/tags?post=4627"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}