:root{--cell-size:min(15vw,60px);--gap-size:6px;--red:#d2003a;--yellow:#faec3b;--dark-purple:#3c003c;--light-gray:#ececec;--dark-teal:#001e1e;--blue-primary:#4f46e5;--blue-dark:#111827;--white:#fff;--slate-light:#f3f4f6;--slate-500:#6b7280;--red-light:#ef4444;--bg-color:var(--dark-purple);--text-color:var(--yellow);--accent-color:var(--yellow);--cell-bg:var(--dark-purple);--cell-border:var(--light-gray);--cell-text:var(--yellow);--visited-bg:var(--dark-teal);--blocked-bg:var(--red);--current-bg:#1a3a3a;--possible-bg:var(--yellow);--possible-text:var(--dark-teal);--btn-primary-bg:var(--yellow);--btn-primary-text:var(--dark-teal);--modal-bg:var(--dark-purple);--modal-border:var(--yellow);--shadow-color:var(--dark-teal);--shadow-sm:#00000080;--tutorial-highlight:#faec3b99;--auth-modal-bg:#14141e99;--auth-modal-border:#ffffff1a}[data-theme=light]{--bg-color:#f8faf8;--text-color:#000;--accent-color:#2563eb;--cell-bg:#fff;--cell-border:#000;--cell-text:#000;--visited-bg:#dbeafe;--blocked-bg:#ef4444;--current-bg:#bfdbfe;--possible-bg:#2563eb;--possible-text:#fff;--btn-primary-bg:#2563eb;--btn-primary-text:#fff;--modal-bg:#fff;--modal-border:#000;--shadow-color:#0000001a;--shadow-sm:#0000000d;--tutorial-highlight:#2563eb4d;--auth-modal-bg:#fff9;--auth-modal-border:#fff6}*{box-sizing:border-box;margin:0;padding:0}html,body{min-height:100%}body{font-family:var(--font-montserrat),sans-serif;background:var(--bg-color);color:var(--text-color);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;background-image:none;min-height:100dvh;font-size:10px;overflow:hidden auto}.app{min-height:100dvh;padding:16px;padding-top:max(16px,env(safe-area-inset-top));padding-bottom:max(16px,env(safe-area-inset-bottom));flex-direction:column;justify-content:center;align-items:center;display:flex}@keyframes pulse{0%,to{filter:brightness();transform:scale(1);box-shadow:0 0 5px #faec3b80}50%{filter:brightness(1.3);transform:scale(1.08);box-shadow:0 0 20px #faec3b,0 0 40px #faec3b99}}@keyframes hintWave{0%,to{box-shadow:none;background-color:#0000;transform:scale(1)}5%,45%{background-color:#faec3b80;transform:scale(1.1);box-shadow:0 0 20px #faec3b,0 0 40px #faec3b99}50%,95%{box-shadow:none;background-color:#0000;transform:scale(1)}}@keyframes hintPulse{0%,to{transform:scale(1.12);box-shadow:0 0 25px #00ff96,0 0 50px #00ff9680}50%{transform:scale(1.08);box-shadow:0 0 35px #00ff96,0 0 70px #00ff96b3}}@keyframes fadeInDown{0%{opacity:0;transform:translate(-50%)translateY(-10px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes tutorialSpotlight{0%{box-shadow:0 0 0 0 var(--tutorial-highlight)}70%{box-shadow:0 0 0 10px #fff0}to{box-shadow:0 0 #fff0}}@media (max-width:600px){.app{justify-content:flex-start;padding:8px}}@keyframes loadingSquare{0%,to{opacity:1;transform:scale(1)}50%{opacity:.3;transform:scale(.5)}}.btn{cursor:pointer;text-transform:uppercase;border:3px solid;border-radius:8px;justify-content:center;align-items:center;gap:10px;min-height:54px;padding:16px 24px;font-family:"Press Start 2P",cursive;font-size:.9rem;transition:all .15s;display:flex}.btn-primary{background:var(--btn-primary-bg);border-color:var(--dark-teal);color:var(--btn-primary-text);box-shadow:4px 4px 0 var(--shadow-color)}.btn-primary:active{box-shadow:2px 2px 0 var(--shadow-color);transform:translate(2px,2px)}.btn-secondary{border-color:var(--light-gray);color:var(--light-gray);background:0 0}.btn-secondary:active{background:#ececec1a}.back-btn{border:2px solid var(--light-gray);color:var(--light-gray);cursor:pointer;background:#ececec26;border-radius:6px;align-items:center;gap:8px;padding:10px 16px;font-family:"Press Start 2P",cursive;font-size:.8rem;display:flex}.modal-overlay{z-index:100;background:#000000d9;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--modal-bg);border:4px solid var(--modal-border);width:100%;max-width:400px;box-shadow:8px 8px 0 var(--shadow-color);text-align:center;border-radius:12px;padding:24px}.modal h2{color:var(--yellow);text-shadow:2px 2px 0 var(--shadow-color);margin-bottom:20px;font-size:1.2rem}.auth-modal-paper{background-color:var(--auth-modal-bg)!important;-webkit-backdrop-filter:blur(15px)!important;backdrop-filter:blur(15px)!important;border:1px solid var(--auth-modal-border)!important;background-image:none!important;border-radius:16px!important;box-shadow:0 8px 32px #0003!important}.form-group{text-align:left;margin-bottom:16px}.form-group label{color:var(--light-gray);margin-bottom:8px;font-size:.7rem;display:block}.form-group input{border:2px solid var(--light-gray);width:100%;color:var(--light-gray);background:#0000004d;border-radius:4px;outline:none;padding:12px;font-family:"Press Start 2P",cursive;font-size:.8rem}.form-group input:focus{border-color:var(--yellow)}.game-grid{grid-template-columns:repeat(5,var(--cell-size));grid-template-rows:repeat(5,var(--cell-size));gap:var(--gap-size);background:var(--dark-purple);border:none;border-radius:8px;margin-bottom:16px;margin-left:auto;margin-right:auto;padding:0;display:grid}.cell{width:var(--cell-size);height:var(--cell-size);background:var(--cell-bg);border:2px solid var(--cell-border);color:var(--light-gray);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;font-size:1rem;transition:transform .1s;display:flex}.cell:active:not(.visited):not(.blocked){transform:scale(.95)}.cell.visited{background:var(--visited-bg);cursor:default;color:var(--light-gray)}.cell.current{background:var(--current-bg);box-shadow:0 0 0 3px var(--yellow);animation:1s step-end infinite blink}@keyframes blink{50%{box-shadow:0 0 0 3px #0000}}.cell.possible-move{background:var(--possible-bg);color:var(--possible-text);animation:none}.cell.possible-move:hover{transform:translate(-1px,-1px);box-shadow:2px 2px #0003}.cell.blocked{background:var(--red);cursor:not-allowed;color:#fff}.confetti-container{display:none}.game-title{color:var(--yellow);text-shadow:4px 4px 0 var(--shadow-color);text-align:center;margin-bottom:8px;font-size:clamp(2rem,8vw,3rem);line-height:1.2}.tagline{color:var(--light-gray);opacity:.7;text-align:center;margin-bottom:32px;font-size:.8rem}.total-stars{border:2px solid var(--yellow);color:var(--yellow);background:#0000004d;border-radius:8px;align-items:center;gap:10px;margin-bottom:24px;padding:12px 20px;font-size:1rem;display:flex}.world-card{border:3px solid var(--light-gray);background:#0000004d;border-radius:12px;padding:20px;transition:all .15s}.world-card:active:not(.locked){border-color:var(--yellow);transform:translate(2px,2px)}.level-card{aspect-ratio:1;border:2px solid var(--light-gray);background:#0000004d;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;display:flex}.level-card.completed{border-color:var(--yellow)}.pixel-icon{vertical-align:middle;display:inline-block}.modal-buttons{gap:12px;margin-top:24px;display:flex}.modal-buttons button{flex:1;justify-content:center;align-items:center;gap:8px;display:flex}.game-screen{flex-direction:column;align-items:center;width:100%;display:flex}.game-grid{margin:0 auto}@media (max-width:380px){:root{--cell-size:50px}}
@font-face{font-family:"Press Start 2P";font-style:normal;font-weight:400;font-display:swap;src:url(../media/cdf703449fd42bc8-s.665aa8c9.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Press Start 2P";font-style:normal;font-weight:400;font-display:swap;src:url(../media/3f10656f33c57dec-s.1b5b6537.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Press Start 2P";font-style:normal;font-weight:400;font-display:swap;src:url(../media/56eb15be423b6220-s.23b201d9.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Press Start 2P";font-style:normal;font-weight:400;font-display:swap;src:url(../media/96074e70a40501da-s.8c31978f.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Press Start 2P";font-style:normal;font-weight:400;font-display:swap;src:url(../media/de161955856a921d-s.p.25da2b95.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Press Start 2P Fallback";src:local(Arial);ascent-override:44.58%;descent-override:0.0%;line-gap-override:0.0%;size-adjust:224.32%}.press_start_2p_507eae83-module__RrG9ga__className{font-family:"Press Start 2P","Press Start 2P Fallback";font-style:normal;font-weight:400}.press_start_2p_507eae83-module__RrG9ga__variable{--font-press-start:"Press Start 2P","Press Start 2P Fallback"}
@font-face{font-family:Montserrat;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8298327da6d5bcce-s.fb2d5852.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/44fac91e6f2d2b1b-s.0a39a854.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2b402d8aebffd579-s.ec7e94a5.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/a88409fdd7dc121c-s.62b55a98.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/e8f2fbee2754df70-s.p.9b7a96b4.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat Fallback;src:local(Arial);ascent-override:85.79%;descent-override:22.25%;line-gap-override:0.0%;size-adjust:112.83%}.montserrat_a312a60d-module__0ifYoG__className{font-family:Montserrat,Montserrat Fallback;font-style:normal}.montserrat_a312a60d-module__0ifYoG__variable{--font-montserrat:"Montserrat","Montserrat Fallback"}
