*{margin:0;padding:0;box-sizing:border-box}html{height:100dvh;width:100vw;overflow:hidden;position:fixed;-webkit-text-size-adjust:100%}body{height:100dvh;width:100vw;margin:0;padding:0;overflow:hidden;position:fixed;background-color:#000;color:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent}#root{height:100dvh;width:100vw;position:fixed;top:0;left:0;overflow:hidden}button{background-color:transparent;border:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent}input,select,textarea{font-size:16px}body{font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";line-height:1.5;text-rendering:optimizeLegibility;background-color:#fff;color:#111827}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4}a{color:inherit;text-decoration:inherit}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:inherit;color:inherit;margin:0;padding:0}button,[type=button],[type=reset],[type=submit]{background-color:transparent;background-image:none}:-webkit-autofill{box-shadow:0 0 0 1000px #fff inset}::-webkit-input-placeholder{color:#6b7280}::-moz-placeholder{color:#6b7280}:-ms-input-placeholder{color:#6b7280}::placeholder{color:#6b7280}table{border-collapse:collapse}hr{height:0;color:inherit;border-top-width:1px}img{border-style:solid;max-width:100%;height:auto}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}.App_main{width:100%;height:100%;background:#000;position:relative}.App_debugPanel{position:absolute;z-index:200;display:flex;flex-direction:column;align-items:flex-start;gap:.5rem}.App_debugLog{width:24rem;max-width:calc(100vw - 2rem);max-height:12rem;overflow-y:auto;background:#000000bf;color:#fff;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.75rem;padding:.75rem;border-radius:.5rem;box-shadow:0 10px 15px #0000004d;border:1px solid #374151}.App_debugLogEntry{white-space:pre-wrap;line-height:1.1}.App_debugToggle{width:2rem;height:2rem;border-radius:9999px;display:flex;align-items:center;justify-content:center;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1.125rem;transition:background-color .15s ease,color .15s ease;outline:none;border:none;cursor:pointer;color:#6b7280}.App_debugToggle:hover{background:#374151}.App_debugToggle--active{background:#0ea5e9;color:#fff}.App_editModeButton{position:absolute;bottom:0;right:0;z-index:300;width:2.5rem;height:2.5rem;opacity:0;transition:opacity .15s ease;outline:none;background:transparent;border:none;cursor:default}.App_editModeButton:hover{opacity:.1}.is-dragging,.is-dragging *{user-select:none;-webkit-user-select:none}@keyframes pulse-animation{0%{transform:scale(1)}50%{transform:scale(1.08);color:#a5f3fc}to{transform:scale(1)}}.pulse-best-time{animation:pulse-animation 1s infinite ease-in-out}.InfoOverlay{position:fixed;bottom:calc(1.3rem + env(safe-area-inset-bottom,0rem));right:calc(1.3rem + env(safe-area-inset-left,0rem));color:#fff6;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.875rem;border-radius:.375rem;pointer-events:none;z-index:100;-webkit-user-select:none;user-select:none}.GameContainer{width:100%;height:100%;position:relative}.GameContainer_canvasWrap{width:100%;height:100%}.GameUI_root{position:relative;transition:opacity 1s ease}.GameUI_root.GameUI_root--hidden{opacity:0;pointer-events:none}.GameUI_top-left{position:absolute;display:flex;flex-direction:column;gap:.25rem;z-index:50;border-radius:.5rem;top:calc(1.2rem + env(safe-area-inset-top,0rem));left:calc(4.5rem + env(safe-area-inset-left,0rem))}.GameUI_top-center{position:absolute;display:flex;align-items:center;justify-content:center;top:calc(2rem + env(safe-area-inset-top,0rem));left:50%;transform:translate(-50%);z-index:50}.GameUI_top-right{position:absolute;display:flex;align-items:center;justify-content:flex-end;gap:1rem;top:calc(2rem + env(safe-area-inset-top,0rem));right:calc(2rem + env(safe-area-inset-right,0rem));z-index:50}@media (max-width: 768px){.GameUI_top-left{top:calc(.5rem + env(safe-area-inset-top,0rem));left:calc(3.1rem + env(safe-area-inset-left,0rem))}.GameUI_top-center{top:calc(1.2rem + env(safe-area-inset-top,0rem))}.GameUI_top-right{top:calc(1.2rem + env(safe-area-inset-top,0rem));right:calc(1.2rem + env(safe-area-inset-right,0rem))}}.GameUI_moves-container{display:flex;align-items:flex-start;gap:.5rem}.GameUI_moves-container .GameUI_reset-btn{position:absolute;right:2.4rem;width:3rem;height:3rem;margin-right:-.64rem;margin-top:-.6rem;opacity:0;transform:scale(.96);pointer-events:none;transition:opacity .3s ease,transform .3s ease,right .7s ease-in-out;transition-delay:0s}.GameUI_moves-container .GameUI_reset-btn.GameUI_reset-btn--moves-hidden{right:0}.GameUI_moves-container .GameUI_reset-btn--visible{opacity:1;transform:scale(1);pointer-events:auto}.GameUI_moves-container .GameUI_reset-btn--hidden{opacity:0;transform:scale(.96);pointer-events:none}@media (max-width: 768px){.GameUI_moves-container{gap:.4rem}}.GameUI_row{display:flex;align-items:center;gap:.25rem}.GameUI_icon-btn{width:2.5rem;height:2.5rem;border-radius:9999px;margin-top:.25rem;display:flex;align-items:center;justify-content:center;color:#d1d5db;transition:color .15s ease,background-color .15s ease;background:transparent;border:none;cursor:pointer}.GameUI_icon-btn:disabled{color:#4b5563;cursor:initial}@media (max-width: 768px){.GameUI_icon-btn{width:2rem}}.GameUI_level-text{font-size:1.4rem;line-height:1.5rem;letter-spacing:-.03rem;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,Arial,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol;color:#d1d5db;-webkit-user-select:none;user-select:none;font-variant-numeric:tabular-nums}@media (max-width: 768px){.GameUI_level-text{font-size:1.2rem}}.GameUI_moves-text{font-size:1.2rem;line-height:1.5rem;letter-spacing:-.05rem;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,Arial,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol;color:#cbd5e1;opacity:.95;-webkit-user-select:none;user-select:none;font-variant-numeric:tabular-nums}@media (min-width: 769px){.GameUI_moves-text{font-size:1.5rem;line-height:1.5rem}}.GameUI_perfect-label{position:absolute;right:0;margin-right:.4rem;font-size:1.1rem;line-height:1.5rem;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,Arial,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol;-webkit-user-select:none;user-select:none;color:#cbd5e1;opacity:.95;animation:perfectSlideIn 2.4s both;animation-delay:.3s}@media (max-width: 768px){.GameUI_perfect-label{font-size:1.1rem}}@keyframes perfectSlideIn{0%{opacity:0;transform:translate(10px);text-shadow:0 0 2px rgba(255,255,255,.1),0 0 4px rgba(255,255,255,.02)}25%{opacity:1;transform:translate(0);text-shadow:0 0 4px rgba(255,255,255,.5),0 0 8px rgba(255,255,255,.2);animation-timing-function:cubic-bezier(.16,1,.3,1)}55%{opacity:1;transform:translate(0);text-shadow:0 0 2px rgba(255,255,255,.1),0 0 4px rgba(255,255,255,.02);animation-timing-function:ease}to{opacity:0;transform:translate(0);animation-timing-function:ease-in}}.GameUI_bottom-center{position:absolute;bottom:calc(.7rem + env(safe-area-inset-bottom,0rem));left:50%;transform:translate(-50%);display:flex;align-items:center;gap:.5rem;z-index:50;border-radius:.5rem;background:#0006;padding:0rem .75rem}.MovesProgress_container{display:inline-flex;align-items:center;justify-content:center;margin-left:.2rem;transform:scale(.6) rotate(-30deg);opacity:0;transition:transform .5s ease-out,opacity .5s ease-out;transition-delay:.1s}.MovesProgress_container--visible{transform:scale(1) rotate(0);opacity:1}.MovesProgress_container--complete{transform:scale(.1) rotate(360deg);opacity:0;transition:transform .5s ease-in,opacity .5s ease-in}.MovesProgress_container--hidden{transform:scale(1.2) rotate(45deg);opacity:0;transition:transform .6s ease-in,opacity .6s ease-in}.MovesProgress_circle{position:relative;width:1.7rem;height:1.7rem;display:flex;align-items:center;justify-content:center}.MovesProgress_dot-container{position:absolute;display:flex;align-items:center;justify-content:center}.MovesProgress_dot{border-radius:50%;background-color:#fff;opacity:.33;transition:opacity .2s ease}.MovesProgress_dot--active{opacity:1}.MovesProgress_highlight-dot{position:absolute;border-radius:50%;background-color:#fff;opacity:0;pointer-events:none;display:none}.MovesProgress_highlight-dot--animate{display:block;animation:MovesProgress_highlight .7s ease-out forwards}@keyframes MovesProgress_highlight{0%{transform:scale(1.1);opacity:.5}to{transform:scale(8);opacity:0}}.WinScreen{position:absolute;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;flex-direction:column;color:#fff;overflow:hidden}.WinScreen--visible{opacity:1}.WinScreen--hidden{opacity:0}.WinScreen_navigation{position:absolute;bottom:8vh;left:50%;transform:translate(-50%);z-index:10;display:flex;flex-direction:column;align-items:center;text-align:center;gap:0rem;opacity:0;transition:opacity 1.5s ease}.WinScreen--visible .WinScreen_navigation{opacity:1;transition-delay:2.5s}.WinScreen_content{opacity:0;transition:opacity 1s ease}.WinScreen--visible .WinScreen_content{opacity:1;transition-delay:.5s}.WinScreen--fading-out .WinScreen_content{opacity:0;transition-delay:0s}.WinScreen--fading-out .WinScreen_button,.WinScreen_button[disabled]{pointer-events:none;opacity:.7}.WinScreen_header{position:absolute;top:8vh;left:50%;transform:translate(-50%);display:flex;flex-direction:column;justify-content:center;align-items:center}.WinScreen_title{font-size:3rem;font-weight:200;letter-spacing:.2em;text-transform:uppercase;color:#d1d5db;-webkit-user-select:none;user-select:none;margin-right:-.75rem}.WinScreen_subtitle{font-size:1rem;font-weight:300;letter-spacing:.1em;text-transform:uppercase;color:#9ca3af;-webkit-user-select:none;user-select:none;white-space:nowrap;opacity:0;transition:opacity 2s ease}.WinScreen--visible .WinScreen_subtitle{opacity:1;transition-delay:1.5s}.WinScreen_time{font-size:3.75rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;margin-bottom:.5rem;color:#7dd3fc}.WinScreen_perfectCount{font-size:1.1rem;font-weight:700;letter-spacing:.05em;margin-top:1rem;-webkit-user-select:none;user-select:none;color:#fff}.WinScreen_buttonContainer{display:flex;flex-direction:row;align-items:center;gap:.25rem;opacity:0;transition:opacity 1.5s ease}.WinScreen--visible .WinScreen_buttonContainer{opacity:1;transition-delay:2.8s}.WinScreen_button{padding:.25rem .5rem;font-size:1.3rem;font-weight:300;color:#fff;transition:color .15s ease;margin-top:0rem;background:none;border:none;cursor:pointer}.WinScreen_button:hover,.WinScreen_button:focus{text-decoration:underline;outline:none}.WinScreen_subtext{color:#d1d5db;height:1.5rem;font-size:1.125rem;line-height:1.5rem}.ShareButton{padding:.5rem;font-size:1.3em;font-weight:300;color:#fff;transition:color .15s ease;margin-top:0rem;background:none;border:none;cursor:pointer;display:flex;align-items:center;gap:.5rem}.ShareButton:hover:not(:disabled),.ShareButton:focus{text-decoration:underline;outline:none}.ShareButton:disabled{pointer-events:none;opacity:.7}.ShareButton_text{display:inline}.ShareButton_icon{display:inline-block;vertical-align:middle}.DebugOverlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:60}.DebugOverlay_label{position:absolute;display:flex;align-items:center;justify-content:center;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.75rem;font-weight:700;color:#fff}.InteractionLayer{position:absolute;top:0;left:0;width:100%;height:100%;touch-action:none;cursor:crosshair;background:transparent;z-index:2}.NodeEditMenu_panel{position:fixed;z-index:50;background:#1f293733;border:1px solid rgba(75,85,99,.2);border-radius:.5rem;box-shadow:0 10px 15px #0000004d;padding:.5rem;pointer-events:auto}.NodeEditMenu_grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.NodeEditMenu_colorBtn{width:1.5rem;height:1.5rem;border-radius:9999px;border:2px solid rgba(75,85,99,.6);transition:transform .15s ease}.NodeEditMenu_colorBtn:hover{transform:scale(1.1)}.NodeEditMenu_requiredBtn{width:1.5rem;height:1.5rem;border:4px solid;border-radius:9999px;background:transparent;transition:transform .15s ease}.NodeEditMenu_requiredBtn:hover{transform:scale(1.1)}.NodeEditMenu_branchesPanel{position:fixed;z-index:50;background:#1f293733;border:1px solid rgba(75,85,99,.2);border-radius:.5rem;box-shadow:0 10px 15px #0000004d;padding:.5rem;pointer-events:auto;display:flex;flex-direction:column;align-items:flex-end}.NodeEditMenu_branchList{display:flex;gap:.25rem}.NodeEditMenu_branchBtn{width:2rem;height:2rem;border-radius:.375rem;border:2px solid rgba(75,85,99,.6);font-size:.875rem;font-weight:500;background:#37415166;color:#d1d5db;transition:background-color .15s ease,color .15s ease,border-color .15s ease}.NodeEditMenu_branchBtn:hover{background:#4b556399}.NodeEditMenu_branchBtn--selected{background:#fff3;border-color:#fff9;color:#fff}.NodeEditMenu_actionPanel{position:fixed;z-index:50;background:#1f293733;border:1px solid rgba(75,85,99,.2);border-radius:.5rem;box-shadow:0 10px 15px #0000004d;padding:.5rem;pointer-events:auto;display:flex;gap:.25rem}.NodeEditMenu_actionButton{width:2rem;height:2rem;background:#37415199;border:1px solid rgba(75,85,99,.6);border-radius:.375rem;color:#d1d5db;display:flex;align-items:center;justify-content:center;transition:background-color .15s ease}.NodeEditMenu_actionButton:hover{background:#4b556399}.NodeEditMenu_actionButton--delete{background:#b91c1c99;border-color:#dc262699;color:#fff}.NodeEditMenu_actionButton--delete:hover{background:#ef444499}.SceneTransition{position:absolute;top:0;left:0;width:100%;height:100%}.SceneTransition--visible{opacity:1}.SceneTransition--hidden{opacity:0;pointer-events:none}.MenuScreen{position:absolute;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff}.MenuScreen_header{margin-bottom:2rem;-webkit-user-select:none;user-select:none;display:flex;flex-direction:column;justify-content:center;align-items:center}.MenuScreen_title{font-size:3.75rem;font-weight:200;letter-spacing:.2em;text-transform:uppercase;color:#d1d5db;-webkit-user-select:none;user-select:none;margin-right:-.75rem}.MenuScreen_subtitle{font-size:1.5rem;font-weight:300;letter-spacing:.1em;text-transform:uppercase;color:#9ca3af;white-space:nowrap;margin-top:-.4rem}.MenuScreen_button{padding:.75rem 1.5rem;font-size:1.875rem;font-weight:300;color:#fff;background:none;border:none;cursor:pointer;transition:color .15s ease,opacity .15s ease,transform .15s ease}.MenuScreen_button:hover,.MenuScreen_button:focus{text-decoration:underline;outline:none}.MenuScreen_button--spaced{margin-top:.5rem}.OptionsScreen{position:absolute;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;background:#000}.OptionsScreen_title{font-size:3rem;font-weight:200;letter-spacing:.1em;margin-bottom:3rem;text-transform:uppercase;color:#d1d5db;-webkit-user-select:none;user-select:none}.OptionsScreen_controls{display:flex;flex-direction:column;gap:2rem}.OptionsScreen_button{margin-top:4rem;padding:.5rem 1.5rem;font-size:1.25rem;color:#fff;background:none;border:none;cursor:pointer}.OptionsScreen_button:hover,.OptionsScreen_button:focus{text-decoration:underline;outline:none}.Slider{width:16rem;-webkit-user-select:none;user-select:none}.Slider_label{color:#d1d5db;font-size:1.25rem;font-weight:300;text-align:center;width:100%;display:block;margin-bottom:.5rem}.Slider_trackWrapper{position:relative;display:flex;align-items:center;width:100%;height:2rem;cursor:pointer}.Slider_track{height:2px;width:100%;background:#fff;border-radius:9999px}.Slider_thumbWrap{position:absolute;top:50%;transform:translate(-50%,-50%);height:2rem;width:2rem;display:flex;align-items:center;justify-content:center}.Slider_thumb{background:#fff;border-radius:9999px;width:1.25rem;height:1.25rem;transition:transform .15s ease}.Slider_thumb--dragging{transform:scale(.75);width:1rem;height:1rem}.Slider_value{position:absolute;left:100%;margin-left:1rem;color:#fb923c;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.875rem;width:3rem;text-align:left;font-variant-numeric:tabular-nums;pointer-events:none}.MapContainer{position:fixed;top:0;right:0;bottom:0;left:0}.NodeOverlays{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:60;opacity:1;transition:opacity .05s ease-out}.NodeOverlays--fadingOut{opacity:0}.NodeOverlays_label{position:absolute;display:flex;align-items:center;justify-content:center;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1rem;font-weight:700;color:#fff}.NodeOverlays_label--active{animation:labelPop .3s cubic-bezier(.68,-.55,.265,1.55)}@keyframes labelPop{0%{opacity:0;transform:translate(-50%,-50%) scale(1.5)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.BackButton_wrapper{position:absolute;top:calc(1.5rem + env(safe-area-inset-top,0rem));left:50%;transform:translate(-50%);z-index:50}.BackButton_button{width:2.5rem;height:2.5rem;border-radius:9999px;border:2.5px solid #ffffff;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:.5}@media (-webkit-min-device-pixel-ratio: 1.5){.BackButton_button{border:2px solid #ffffff}}.BackButton_button--disabled{cursor:initial}.BackButton_button:hover{opacity:1}.BackButton_indicator{width:.375rem;height:.375rem;border-radius:9999px;background:#fff}.BackButton_icon{color:#fff}.HomeButton{position:fixed;top:calc(1.5rem + env(safe-area-inset-top,0rem));left:calc(1.5rem + env(safe-area-inset-left,0rem));width:2.5rem;height:2.5rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;cursor:pointer;z-index:1000;padding:0;opacity:.5;transition:opacity 1s ease}@media (max-width: 768px){.HomeButton{top:calc(.72rem + env(safe-area-inset-top,0rem));left:calc(.72rem + env(safe-area-inset-left,0rem))}}.HomeButton--hidden{opacity:0;pointer-events:none}.HomeButton:hover{opacity:1}.HomeButton_line{width:20px;height:2px;background:#fff;flex-shrink:0}.TimerUI{-webkit-user-select:none;user-select:none;font-variant-numeric:tabular-nums;position:absolute;top:calc(2rem + env(safe-area-inset-top,0rem));right:calc(2rem + env(safe-area-inset-right,0rem));z-index:50;opacity:1;transition:opacity 1s}.TimerUI--hidden{opacity:0}.TimerUI_value{font-size:1.5rem;line-height:1.5rem;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,Arial,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol;color:#d1d5db}.WebGLCanvas_canvas{width:100%;height:100%;display:block}.PerformanceMonitor{position:fixed;bottom:calc(1.3rem + env(safe-area-inset-bottom,0rem));left:calc(4rem + env(safe-area-inset-left,0rem));color:#fff;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.875rem;font-weight:600;border-radius:.375rem;pointer-events:none;z-index:100;-webkit-user-select:none;user-select:none}.AppFooter{position:fixed;left:0;right:0;bottom:0;height:64px;display:flex;justify-content:space-between;align-items:flex-end;z-index:100;pointer-events:auto}.AppFooter__left{margin-left:1rem;margin-bottom:1rem}.AppFooter__right{display:flex;gap:1rem;margin-right:1rem;margin-bottom:1rem}@media (max-width: 768px){.AppFooter__left{margin-left:.7rem;margin-bottom:.7rem}.AppFooter__right{gap:.5rem;margin-right:.7rem;margin-bottom:.7rem}}.AppFooter__steam img,.AppFooter__ios img,.AppFooter__android img{object-fit:contain;display:block;font-size:.5rem}.AppFooter__steam img{height:30px}.AppFooter__ios img,.AppFooter__android img{height:40px}.AppFooter__steamRow{display:flex;align-items:center}.AppFooter__steamLabel{font-size:1rem;color:#fff;opacity:.8;margin-right:.5rem;vertical-align:middle}@media (max-width: 768px){.AppFooter img{max-width:100px}.AppFooter__steam img{height:20px}.AppFooter__ios img,.AppFooter__android img{height:25px}.AppFooter__steamLabel{font-size:.7rem;margin-top:.1rem}}
