@import url(https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap);body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--clr-primary:#00fff2;--clr-secondary:#ff006e;--clr-accent:#ffd60a;--clr-success:#00ff41;--clr-danger:#ff5722;--clr-special:#9d4edd;--clr-bg:#000;--clr-text:#fff;--clr-border-dim:#1a1a1a;--glow-sm:0 0 10px;--glow-md:0 0 20px;--glow-lg:0 0 40px;--glow-xl:0 0 80px;--font-arcade:"Press Start 2P",monospace;--font-mono:"Courier New",monospace;--anim-instant:0.05s;--anim-fast:0.15s;--anim-normal:0.3s;--anim-slow:0.6s;--anim-heartbeat:1.2s;--anim-pulse-beat:1.2s;--node-size:25px;--border-thickness:4px;--btn-press-depth:6px;--btn-shadow-color:#0009}*{box-sizing:border-box;margin:0;padding:0}body{background:#000;background:var(--clr-bg);color:#fff;color:var(--clr-text);cursor:default;display:flex;font-family:Courier New,monospace;font-family:var(--font-mono);margin:0;overflow-y:auto;width:100vw}.App,body{justify-content:center;min-height:100vh;position:relative}.App{grid-gap:25px;align-items:start;animation:backgroundPulse 8s ease-in-out infinite;background:radial-gradient(ellipse at top,#1a0033 0,#000 50%),radial-gradient(ellipse at bottom,#001a33 0,#000 50%);background:radial-gradient(ellipse at top,#1a0033 0,var(--clr-bg) 50%),radial-gradient(ellipse at bottom,#001a33 0,var(--clr-bg) 50%);display:grid;gap:25px;grid-template-areas:"header header header" "left-panel screen right-panel" "footer footer footer";grid-template-columns:minmax(280px,320px) minmax(600px,700px) minmax(280px,320px);grid-template-rows:auto 1fr auto;height:100vh;justify-items:stretch;overflow:hidden;padding:20px}@keyframes backgroundPulse{0%,to{filter:brightness(1)}50%{filter:brightness(1.1)}}.App:after{animation:scanlineMove 8s linear infinite,crtFlicker .15s infinite;background:repeating-linear-gradient(0deg,#0000,#0009 1px,#0000 2px,#0000 3px);content:"";height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:9999}@keyframes scanlineMove{0%{transform:translateY(0)}to{transform:translateY(4px)}}@keyframes crtFlicker{0%,to{opacity:.8}50%{opacity:1}}.App:before{background:radial-gradient(ellipse at center,#0000 0,#000c 100%);content:"";height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:9998}.title{align-items:center;animation:titleEntrance 1s cubic-bezier(.68,-.55,.265,1.55),titlePulse 1.2s ease-in-out 1s infinite;animation:titleEntrance 1s cubic-bezier(.68,-.55,.265,1.55),titlePulse var(--anim-heartbeat) ease-in-out infinite 1s;color:#ff006e;color:var(--clr-secondary);display:flex;font-family:Press Start\ 2P,monospace;font-family:var(--font-arcade);font-size:32px;grid-area:header;justify-content:center;letter-spacing:10px;margin:0;position:relative;text-shadow:0 0 10px #ff006e,0 0 20px #ff006e,0 0 40px #ff006e;text-shadow:var(--glow-sm) var(--clr-secondary),var(--glow-md) var(--clr-secondary),var(--glow-lg) var(--clr-secondary);transform-origin:center;z-index:100}@keyframes titleEntrance{0%{filter:blur(20px);opacity:0;transform:scale(0) rotate(-180deg)}60%{transform:scale(1.2) rotate(10deg)}to{filter:blur(0);opacity:1;transform:scale(1) rotate(0deg)}}@keyframes titlePulse{0%,to{text-shadow:0 0 10px currentColor,0 0 20px currentColor;text-shadow:var(--glow-sm) currentColor,var(--glow-md) currentColor;transform:scale(1)}50%{text-shadow:0 0 20px currentColor,0 0 40px currentColor,0 0 80px currentColor;text-shadow:var(--glow-md) currentColor,var(--glow-lg) currentColor,var(--glow-xl) currentColor;transform:scale(1.05)}}.glitch{animation:glitchShake 5s infinite;display:inline-block;padding:0 8px;position:relative}@keyframes glitchShake{0%,90%,to{transform:translate(0)}91%{transform:translate(-2px,2px)}92%{transform:translate(2px,-2px)}93%{transform:translate(-2px,-2px)}94%{transform:translate(2px,2px)}95%{transform:translate(0)}}.glitch:after,.glitch:before{clip:rect(0,900px,0,0);background:#0000;content:attr(data-text);left:0;overflow:hidden;padding:0 8px;position:absolute;top:0}.glitch:before{animation:glitchEffectOne 3s linear infinite alternate-reverse;left:3px;text-shadow:-3px 0 #00fff2;text-shadow:-3px 0 var(--clr-primary)}.glitch:after{animation:glitchEffectTwo 2.5s linear infinite alternate-reverse;left:-3px;text-shadow:3px 0 #ffd60a;text-shadow:3px 0 var(--clr-accent)}@keyframes glitchEffectOne{0%{clip:rect(42px,9999px,44px,0)}10%{clip:rect(12px,9999px,59px,0)}20%{clip:rect(63px,9999px,27px,0)}30%{clip:rect(18px,9999px,83px,0)}40%{clip:rect(76px,9999px,15px,0)}50%{clip:rect(33px,9999px,65px,0)}60%{clip:rect(51px,9999px,29px,0)}70%{clip:rect(8px,9999px,78px,0)}80%{clip:rect(44px,9999px,22px,0)}90%{clip:rect(67px,9999px,41px,0)}to{clip:rect(25px,9999px,70px,0)}}@keyframes glitchEffectTwo{0%{clip:rect(15px,9999px,80px,0)}10%{clip:rect(55px,9999px,25px,0)}20%{clip:rect(70px,9999px,45px,0)}30%{clip:rect(5px,9999px,90px,0)}40%{clip:rect(38px,9999px,18px,0)}50%{clip:rect(82px,9999px,52px,0)}60%{clip:rect(20px,9999px,68px,0)}70%{clip:rect(48px,9999px,12px,0)}80%{clip:rect(72px,9999px,35px,0)}90%{clip:rect(28px,9999px,75px,0)}to{clip:rect(60px,9999px,40px,0)}}.control-panel,.right-panel-content{align-items:stretch;align-self:start;background:linear-gradient(135deg,#000000b3,#140028b3);border:3px solid #00fff2;border:3px solid var(--clr-primary);border-radius:12px;box-shadow:0 0 30px #00fff2,inset 0 0 30px #00fff21a;box-shadow:0 0 30px var(--clr-primary),inset 0 0 30px #00fff21a;display:flex;flex-direction:column;gap:20px;padding:20px;width:100%;z-index:10}.control-panel{grid-area:left-panel}.right-panel-content{grid-area:right-panel}.action-buttons,.mode-selector{align-items:stretch;display:flex;flex-direction:column;gap:15px}.mode-selector{border-bottom:2px solid #00fff24d;padding-bottom:20px}.control-section-header{background:#00fff21a;border:2px solid #00fff233;border-radius:6px;color:#00fff2;color:var(--clr-primary);margin-bottom:10px;text-shadow:0 0 10px #00fff2;text-shadow:0 0 10px var(--clr-primary)}.control-section-header,.maze-section-header{font-family:Press Start\ 2P,monospace;font-family:var(--font-arcade);font-size:10px;letter-spacing:2px;padding:8px;text-align:center;text-transform:uppercase}.maze-section-header{background:#9d4edd1a;border:2px solid #9d4edd33;border-radius:6px;color:#9d4edd;color:var(--clr-special);margin-bottom:5px;text-shadow:0 0 10px #9d4edd;text-shadow:0 0 10px var(--clr-special)}.battle-section-header{background:#ffd60a1a;border:2px solid #ffd60a33;border-radius:6px;color:#ffd60a;color:var(--clr-accent);font-family:Press Start\ 2P,monospace;font-family:var(--font-arcade);font-size:10px;letter-spacing:2px;margin-bottom:10px;padding:8px;text-align:center;text-shadow:0 0 10px #ffd60a;text-shadow:0 0 10px var(--clr-accent);text-transform:uppercase}.btn{--btn-color:var(--clr-text);background:none;background:linear-gradient(180deg,#222,#111);border:none;border-radius:12px;box-shadow:0 6px 0 #0009,0 10px 15px #00000080;box-shadow:0 var(--btn-press-depth) 0 var(--btn-shadow-color),0 calc(var(--btn-press-depth) + 4px) 15px #00000080;cursor:pointer;padding:0;position:relative;transition:all .15s ease-out;transition:all var(--anim-fast) ease-out;width:100%}.btn-content{align-items:center;background:var(--btn-color);border:3px solid #111;border-radius:8px;box-shadow:inset 0 3px 5px #ffffff40,inset 0 -3px 5px #00000040;color:#000;color:var(--clr-bg);display:flex;font-family:Press Start\ 2P,monospace;font-family:var(--font-arcade);font-size:11px;justify-content:center;letter-spacing:2px;padding:12px 20px;text-transform:uppercase;transform:translateY(-6px);transform:translateY(calc(var(--btn-press-depth)*-1));transition:transform .15s cubic-bezier(.25,.46,.45,.94),filter .15s ease-out;transition:transform var(--anim-fast) cubic-bezier(.25,.46,.45,.94),filter var(--anim-fast) ease-out}.btn-icon{margin-right:10px}.btn:hover:not(:disabled){box-shadow:0 8px 0 #0009,0 14px 25px #0000004d,0 0 40px var(--btn-color);box-shadow:0 calc(var(--btn-press-depth) + 2px) 0 var(--btn-shadow-color),0 calc(var(--btn-press-depth) + 8px) 25px #0000004d,0 0 40px var(--btn-color);transform:translateY(-2px)}.btn:hover:not(:disabled) .btn-content{filter:brightness(1.2)}.btn:active:not(:disabled){box-shadow:0 2px 0 #0009,0 4px 8px #0000004d;box-shadow:0 2px 0 var(--btn-shadow-color),0 4px 8px #0000004d;transform:translateY(0)}.btn:active:not(:disabled) .btn-content{box-shadow:inset 0 2px 3px #ffffff26,inset 0 -2px 3px #00000059;filter:brightness(.9);transform:translateY(-2px);transform:translateY(calc(var(--btn-press-depth)*-1 + 4px));transition-duration:.05s}.btn:disabled .btn-content{background:#444;box-shadow:inset 0 0 10px #00000080;color:#888;cursor:not-allowed;filter:grayscale(1)}.btn:disabled{box-shadow:0 6px 0 #0009;box-shadow:0 var(--btn-press-depth) 0 var(--btn-shadow-color);cursor:not-allowed}.btn.active .btn-content{animation:activeButtonPulse 1.2s ease-in-out infinite;animation:activeButtonPulse var(--anim-pulse-beat) ease-in-out infinite;box-shadow:inset 0 0 20px #000c,inset 0 3px 5px #fff3;transform:translateY(-2px)}.btn.active{box-shadow:0 2px 0 #0009,0 0 60px var(--btn-color);box-shadow:0 2px 0 var(--btn-shadow-color),0 0 60px var(--btn-color)}@keyframes activeButtonPulse{50%{filter:brightness(1.5)}}.mode-btn{--btn-color:var(--clr-primary)}.start-btn{--btn-color:var(--clr-success)}.end-btn{--btn-color:var(--clr-danger)}.clear-btn,.maze-btn{--btn-color:var(--clr-special)}.visualize-btn{--btn-color:var(--clr-accent);--btn-press-depth:8px}.visualize-btn .btn-content{animation:executeButtonIdle 1.2s ease-in-out infinite;animation:executeButtonIdle var(--anim-pulse-beat) ease-in-out infinite;background:radial-gradient(ellipse at center,#ffe666 0,#ffd60a 100%);background:radial-gradient(ellipse at center,#ffe666 0,var(--clr-accent) 100%);border-width:4px;font-size:14px;overflow:hidden;padding:14px 35px;position:relative}@keyframes executeButtonIdle{50%{filter:brightness(1.3)}}.visualize-btn .btn-content:before{animation:buttonShine 3s linear infinite;background:linear-gradient(90deg,#0000,#fff6,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transform:skewX(-25deg);width:75%}@keyframes buttonShine{0%{left:-100%}to{left:175%}}.visualize-btn:hover:not(:disabled){box-shadow:0 10px 0 #0009,0 0 60px #ffd60a,0 0 120px #ffd60a99;box-shadow:0 calc(var(--btn-press-depth) + 4px) 0 var(--btn-shadow-color),0 0 60px var(--clr-accent),0 0 120px #ffd60a99;transform:translateY(-4px) scale(1.05)}.visualize-btn:active:not(:disabled){transform:translateY(1px) scale(1.02)}.grid-container{align-items:center;animation:gridBreathing 1.2s ease-in-out infinite;animation:gridBreathing var(--anim-heartbeat) ease-in-out infinite;background:linear-gradient(135deg,#000000e6,#0a0014e6);border:5px solid #ff006e;border:5px solid var(--clr-secondary);border-radius:12px;box-shadow:0 0 40px #ff006e,inset 0 0 50px #ff006e4d,0 0 0 3px #000c,0 20px 40px #000000e6;box-shadow:var(--glow-lg) var(--clr-secondary),inset 0 0 50px #ff006e4d,0 0 0 3px #000c,0 20px 40px #000000e6;display:flex;grid-area:screen;justify-content:center;min-height:0;overflow:hidden;padding:20px;position:relative;width:100%}.grid-container .grid{height:-webkit-fit-content;height:fit-content;max-height:100%;max-width:100%;width:-webkit-fit-content;width:fit-content}@keyframes gridBreathing{0%,to{box-shadow:0 0 40px #ff006e,inset 0 0 50px #ff006e4d,0 0 0 3px #000c,0 20px 40px #000000e6;box-shadow:var(--glow-lg) var(--clr-secondary),inset 0 0 50px #ff006e4d,0 0 0 3px #000c,0 20px 40px #000000e6}50%{box-shadow:0 0 60px #ff006e,0 0 100px #ff006e80,inset 0 0 60px #ff006e66,0 0 0 3px #000c,0 25px 50px #000000e6;box-shadow:0 0 60px var(--clr-secondary),0 0 100px #ff006e80,inset 0 0 60px #ff006e66,0 0 0 3px #000c,0 25px 50px #000000e6}}.grid{background:#000;background:var(--clr-bg);display:inline-block;position:relative}.grid-row{display:flex}.grid-row,.node{height:25px;height:var(--node-size)}.node{background:#0000;border:1px solid #1a1a1a;border:1px solid var(--clr-border-dim);cursor:crosshair;position:relative;transition:all .05s ease-out;transition:all var(--anim-instant) ease-out;width:25px;width:var(--node-size)}.node:hover{background:#ff006e33;box-shadow:inset 0 0 10px #ff006e80;box-shadow:inset var(--glow-sm) #ff006e80;transform:scale(1.1);z-index:5}.node.wall,.node:hover{border-color:#ff006e;border-color:var(--clr-secondary)}.node.wall{animation:wallExplosion .3s cubic-bezier(.68,-.55,.265,1.55);animation:wallExplosion var(--anim-normal) cubic-bezier(.68,-.55,.265,1.55);background:#ff006e;background:var(--clr-secondary);box-shadow:0 0 20px #ff006e,inset 0 0 10px #ffffff80;box-shadow:var(--glow-md) var(--clr-secondary),inset 0 0 10px #ffffff80;position:relative}@keyframes wallExplosion{0%{box-shadow:0 0 100px #ff006e;box-shadow:0 0 100px var(--clr-secondary);filter:brightness(5);transform:scale(0) rotate(0deg)}50%{filter:brightness(3);transform:scale(1.5) rotate(180deg)}to{filter:brightness(1);transform:scale(1) rotate(1turn)}}.node.wall:before{animation:wallParticles .5s ease-out forwards;background:radial-gradient(circle,#ff006e 0,#0000 70%);background:radial-gradient(circle,var(--clr-secondary) 0,#0000 70%);content:"";height:200%;left:50%;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);width:200%}@keyframes wallParticles{0%{opacity:1;transform:translate(-50%,-50%) scale(0)}to{opacity:0;transform:translate(-50%,-50%) scale(3)}}.node.start{animation:startNodePulse 1.2s ease-in-out infinite;animation:startNodePulse var(--anim-heartbeat) ease-in-out infinite;background:radial-gradient(circle,#00ff41 0,#00ff4180 100%);background:radial-gradient(circle,var(--clr-success) 0,#00ff4180 100%);border-color:#00ff41;border-color:var(--clr-success);border-radius:50%;border-width:3px;box-shadow:0 0 20px #00ff41,0 0 40px #00ff41,inset 0 0 15px #fffc;box-shadow:var(--glow-md) var(--clr-success),var(--glow-lg) var(--clr-success),inset 0 0 15px #fffc;transform:scale(1);z-index:10}@keyframes startNodePulse{0%,to{box-shadow:0 0 20px #00ff41,0 0 40px #00ff41;box-shadow:var(--glow-md) var(--clr-success),var(--glow-lg) var(--clr-success);transform:scale(1)}50%{box-shadow:0 0 40px #00ff41,0 0 80px #00ff41,0 0 100px #00ff41;box-shadow:var(--glow-lg) var(--clr-success),var(--glow-xl) var(--clr-success),0 0 100px var(--clr-success);transform:scale(1.2)}}.node.end{animation:endNodePulse 1.2s ease-in-out .3s infinite;animation:endNodePulse var(--anim-heartbeat) ease-in-out infinite .3s;background:radial-gradient(circle,#ff5722 0,#ff572280 100%);background:radial-gradient(circle,var(--clr-danger) 0,#ff572280 100%);border-color:#ff5722;border-color:var(--clr-danger);border-radius:50%;border-width:3px;box-shadow:0 0 20px #ff5722,0 0 40px #ff5722,inset 0 0 15px #fffc;box-shadow:var(--glow-md) var(--clr-danger),var(--glow-lg) var(--clr-danger),inset 0 0 15px #fffc;transform:scale(1);z-index:10}@keyframes endNodePulse{0%,to{box-shadow:0 0 20px #ff5722,0 0 40px #ff5722;box-shadow:var(--glow-md) var(--clr-danger),var(--glow-lg) var(--clr-danger);transform:scale(1) rotate(0deg)}50%{box-shadow:0 0 40px #ff5722,0 0 80px #ff5722,0 0 100px #ff5722;box-shadow:var(--glow-lg) var(--clr-danger),var(--glow-xl) var(--clr-danger),0 0 100px var(--clr-danger);transform:scale(1.2) rotate(180deg)}}.node.hunting{--proximity:0;--hue:calc(175 + var(--proximity)*155);animation:huntingPulse calc(.5s - .4s*var(--proximity)) ease-in-out infinite,huntingReveal .3s cubic-bezier(.68,-.55,.265,1.55);animation:huntingPulse calc(.5s - .4s*var(--proximity)) ease-in-out infinite,huntingReveal var(--anim-normal) cubic-bezier(.68,-.55,.265,1.55);background:hsl(var(--hue),100%,calc(50% + 20%*var(--proximity)));border-color:hsl(var(--hue),100%,70%);border-width:2px;box-shadow:0 0 calc(15px + 25px*var(--proximity)) hsl(var(--hue),100%,60%),inset 0 0 calc(8px + 12px*var(--proximity)) #fff9;transform:scale(calc(1.05 + var(--proximity)*.15));z-index:3}@keyframes huntingPulse{0%,to{filter:brightness(1)}50%{filter:brightness(2)}}@keyframes huntingReveal{0%{filter:blur(10px);opacity:0;transform:scale(0) rotate(0deg)}to{filter:blur(0);opacity:1;transform:scale(1) rotate(1turn)}}.node.path{animation:pathReveal .6s cubic-bezier(.68,-.55,.265,1.55),pathElectric .08s step-end .6s infinite,pathPulse 1.2s ease-in-out .6s infinite;animation:pathReveal var(--anim-slow) cubic-bezier(.68,-.55,.265,1.55),pathElectric .08s step-end infinite var(--anim-slow),pathPulse var(--anim-heartbeat) ease-in-out infinite var(--anim-slow);background:radial-gradient(circle,#fff 0,#00fff2 40%,#00fff2cc 100%);background:radial-gradient(circle,#fff 0,var(--clr-primary) 40%,#00fff2cc 100%);border-color:#fff;border-width:2px;box-shadow:0 0 20px #00fff2,0 0 40px #00fff2,0 0 80px #00fff2e6,inset 0 0 15px #fff;box-shadow:var(--glow-md) var(--clr-primary),var(--glow-lg) var(--clr-primary),var(--glow-xl) #00fff2e6,inset 0 0 15px #fff;position:relative;transform:scale(1.15);z-index:15}@keyframes pathReveal{0%{background:#fff;box-shadow:0 0 200px #fff;filter:brightness(10) blur(20px);transform:scale(0) rotate(0deg)}50%{filter:brightness(5) blur(10px);transform:scale(2) rotate(180deg)}to{filter:brightness(1) blur(0);transform:scale(1.15) rotate(1turn)}}@keyframes pathElectric{0%,50%,to{filter:brightness(1);opacity:1}25%{filter:brightness(1.5);opacity:.9}75%{filter:brightness(1.3);opacity:.95}}@keyframes pathPulse{0%,to{box-shadow:0 0 20px #00fff2,0 0 40px #00fff2,0 0 80px #00fff2e6;box-shadow:var(--glow-md) var(--clr-primary),var(--glow-lg) var(--clr-primary),var(--glow-xl) #00fff2e6;transform:scale(1.15)}50%{box-shadow:0 0 40px #00fff2,0 0 80px #00fff2,0 0 150px #00fff2;box-shadow:var(--glow-lg) var(--clr-primary),var(--glow-xl) var(--clr-primary),0 0 150px #00fff2;filter:brightness(1.8);transform:scale(1.3)}}.node.path:after{animation:pathBoltFlash .3s ease-in-out infinite;color:#fff;content:"";font-size:12px;left:50%;pointer-events:none;position:absolute;text-shadow:0 0 10px #fff;top:50%;transform:translate(-50%,-50%)}@keyframes pathBoltFlash{0%,to{opacity:0}50%{opacity:1}}.node.liquid-splash{animation:liquidSplashWave .6s cubic-bezier(.68,-.55,.265,1.55);background:radial-gradient(circle,#ff006e 0,#0000 70%);background:radial-gradient(circle,var(--clr-secondary) 0,#0000 70%);border-color:#ff006e;border-color:var(--clr-secondary);box-shadow:0 0 20px #ff006e;box-shadow:var(--glow-md) var(--clr-secondary)}@keyframes liquidSplashWave{0%{filter:brightness(3);opacity:0;transform:scale(0)}50%{filter:brightness(2);opacity:1;transform:scale(1.5)}to{filter:brightness(1);opacity:0;transform:scale(1)}}.ripple{border-radius:50%;height:25px;height:var(--node-size);mix-blend-mode:screen;pointer-events:none;position:absolute;transform:translate(-12.5px,-12.5px);transform:translate(calc(var(--node-size)/-2),calc(var(--node-size)/-2));width:25px;width:var(--node-size);z-index:100}.ripple-expand{animation:liquidExpand .8s cubic-bezier(.25,.46,.45,.94) forwards}@keyframes liquidExpand{0%{background:radial-gradient(circle,#fff 0,#ff006e 20%,#0000 100%);background:radial-gradient(circle,#fff 0,var(--clr-secondary) 20%,#0000 100%);box-shadow:0 0 40px #ff006e,0 0 50px #ff006e;box-shadow:var(--glow-lg) var(--clr-secondary),0 0 50px var(--clr-secondary);height:25px;height:var(--node-size);opacity:1;width:25px;width:var(--node-size)}to{background:radial-gradient(circle,#ff006e 0,#0000 100%);background:radial-gradient(circle,var(--clr-secondary) 0,#0000 100%);height:200px;opacity:0;width:200px}}.ripple-bounce{animation:liquidBounce .5s cubic-bezier(.68,-.55,.265,1.55) forwards}@keyframes liquidBounce{0%{background:#ff006e;background:var(--clr-secondary);box-shadow:0 0 40px #ff006e,0 0 80px #ff006e;box-shadow:var(--glow-lg) var(--clr-secondary),0 0 80px var(--clr-secondary);height:25px;height:var(--node-size);opacity:1;width:25px;width:var(--node-size)}50%{height:50px;height:calc(var(--node-size)*2);opacity:.8;transform:translate(-12.5px,-12.5px) scale(1.3);transform:translate(calc(var(--node-size)/-2),calc(var(--node-size)/-2)) scale(1.3);width:50px;width:calc(var(--node-size)*2)}to{height:25px;height:var(--node-size);opacity:0;transform:translate(-12.5px,-12.5px) scale(.3);transform:translate(calc(var(--node-size)/-2),calc(var(--node-size)/-2)) scale(.3);width:25px;width:var(--node-size)}}.status-message{align-self:center;animation:statusPulse 1.2s ease-in-out infinite;animation:statusPulse var(--anim-heartbeat) ease-in-out infinite;background:#000c;border:3px solid #00fff2;border:3px solid var(--clr-primary);border-radius:8px;box-shadow:0 0 40px #00fff2,inset 0 0 20px #00fff24d;box-shadow:var(--glow-lg) var(--clr-primary),inset 0 0 20px #00fff24d;color:#00fff2;color:var(--clr-primary);font-family:Press Start\ 2P,monospace;font-family:var(--font-arcade);font-size:16px;grid-area:footer;justify-self:center;letter-spacing:4px;padding:12px 25px;text-align:center;text-shadow:0 0 20px #00fff2,0 0 40px #00fff2;text-shadow:var(--glow-md) var(--clr-primary),var(--glow-lg) var(--clr-primary);z-index:50}@keyframes statusPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.05)}}.scanning{animation:scanningFlash .5s ease-in-out infinite;font-weight:700}@keyframes scanningFlash{0%,to{color:#00fff2;color:var(--clr-primary)}50%{color:#fff}}.dots{animation:dotBlink 1.2s steps(4) infinite;display:inline-block;overflow:hidden;text-shadow:0 0 20px #00fff2;text-shadow:var(--glow-md) var(--clr-primary);vertical-align:top;width:30px}@keyframes dotBlink{0%{content:"."}25%{content:".."}50%{content:"..."}75%,to{content:"...."}}.combo-display{animation:comboEntrance .3s cubic-bezier(.68,-.55,.265,1.55);animation:comboEntrance var(--anim-normal) cubic-bezier(.68,-.55,.265,1.55);background:linear-gradient(135deg,#000000f2,#211100f2);border:5px solid #ffd60a;border:5px solid var(--clr-accent);border-radius:12px;box-shadow:0 0 80px #ffd60a,0 0 100px #ffd60a80,inset 0 0 30px #ffd60a4d;box-shadow:var(--glow-xl) var(--clr-accent),0 0 100px #ffd60a80,inset 0 0 30px #ffd60a4d;min-width:130px;padding:20px;position:absolute;right:20px;text-align:center;top:20px;z-index:1000}@keyframes comboEntrance{0%{filter:blur(20px);opacity:0;transform:translateY(-50%) scale(0) rotate(-180deg)}60%{transform:translateY(-50%) scale(1.2) rotate(20deg)}to{filter:blur(0);opacity:1;transform:translateY(-50%) scale(1) rotate(0deg)}}.combo-text{animation:comboTextShake .1s ease-in-out infinite;color:#ffd60a;color:var(--clr-accent);font-family:Press Start\ 2P,monospace;font-family:var(--font-arcade);font-size:16px;letter-spacing:3px;margin-bottom:10px;text-shadow:0 0 20px #ffd60a;text-shadow:var(--glow-md) var(--clr-accent)}@keyframes comboTextShake{0%,to{transform:translateX(0)}25%{transform:translateX(-1px)}75%{transform:translateX(1px)}}.combo-number{-webkit-text-fill-color:#0000;animation:comboNumberPulse .6s ease-in-out infinite;animation:comboNumberPulse var(--anim-slow) ease-in-out infinite;background:linear-gradient(180deg,#fff,#ffd60a);background:linear-gradient(180deg,#fff 0,var(--clr-accent) 100%);-webkit-background-clip:text;background-clip:text;color:#fff;font-family:Press Start\ 2P,monospace;font-family:var(--font-arcade);font-size:48px;font-weight:700;line-height:1;text-shadow:0 0 40px #ffd60a,0 0 80px #ffd60a,0 0 100px #ffd60a;text-shadow:var(--glow-lg) var(--clr-accent),var(--glow-xl) var(--clr-accent),0 0 100px var(--clr-accent)}@keyframes comboNumberPulse{0%,to{filter:brightness(1);transform:scale(1) rotate(0deg)}50%{filter:brightness(1.5);transform:scale(1.2) rotate(5deg)}}.combo-bar{background:#ffd60a33;border:3px solid #ffd60a;border:3px solid var(--clr-accent);border-radius:6px;box-shadow:0 0 10px #ffd60a80,inset 0 0 15px #000c;box-shadow:var(--glow-sm) #ffd60a80,inset 0 0 15px #000c;height:12px;margin-top:20px;overflow:hidden;position:relative;width:140px}.combo-bar:before{animation:comboBarShine 2s linear infinite;background:linear-gradient(90deg,#0000,#ffffff80,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;width:100%}@keyframes comboBarShine{0%{left:-100%}to{left:100%}}.combo-fill{animation:comboFillPulse .15s ease-in-out infinite;background:linear-gradient(90deg,#ff5722,#ffd60a 50%,#fff);background:linear-gradient(90deg,var(--clr-danger) 0,var(--clr-accent) 50%,#fff 100%);box-shadow:inset 0 0 20px #fffc,0 0 20px #ffd60a;box-shadow:inset 0 0 20px #fffc,var(--glow-md) var(--clr-accent);height:100%;position:relative;transition:width .15s ease-out;transition:width var(--anim-fast) ease-out}@keyframes comboFillPulse{0%,to{box-shadow:inset 0 0 20px #fffc;filter:brightness(1)}50%{box-shadow:inset 0 0 30px #fff;filter:brightness(1.8)}}.grid.combo-shake{animation:comboScreenShake .3s cubic-bezier(.68,-.55,.265,1.55)}@keyframes comboScreenShake{0%,to{transform:translate(0) rotate(0deg)}10%{transform:translate(-8px,2px) rotate(-1deg)}20%{transform:translate(8px,-2px) rotate(1deg)}30%{transform:translate(-8px,-2px) rotate(-1deg)}40%{transform:translate(8px,2px) rotate(1deg)}50%{transform:translate(-6px,-2px) rotate(-.5deg)}60%{transform:translate(6px,2px) rotate(.5deg)}70%{transform:translate(-4px) rotate(-.3deg)}80%{transform:translate(4px) rotate(.3deg)}90%{transform:translate(-2px) rotate(-.1deg)}}.combo-display[data-combo="10"]:before,.combo-display[data-combo="15"]:before,.combo-display[data-combo="20"]:before{animation:comboScreenFlash .5s ease-out;background:radial-gradient(circle,#0000 40%,#ffd60a 200%);background:radial-gradient(circle,#0000 40%,var(--clr-accent) 200%);content:"";height:100vh;left:0;opacity:.1;pointer-events:none;position:fixed;top:0;width:100vw;z-index:999}@keyframes comboScreenFlash{0%{opacity:.3}to{opacity:0}}.maze-controls{align-items:stretch;border-top:2px solid #9d4edd4d;display:flex;flex-direction:column;gap:15px;padding-top:20px}.maze-dropdown{-webkit-appearance:none;appearance:none;background:#000c;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cpath d='M6 9 1 4h10z' fill='%239d4edd'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;border:3px solid #9d4edd;border:3px solid var(--clr-special);border-radius:8px;box-shadow:0 0 10px #9d4edd,inset 0 0 10px #9d4edd33;box-shadow:0 0 10px var(--clr-special),inset 0 0 10px #9d4edd33;color:#9d4edd;color:var(--clr-special);cursor:pointer;font-family:Press Start\ 2P,monospace;font-family:var(--font-arcade);font-size:12px;letter-spacing:1px;padding:12px 35px 12px 20px;transition:all .15s ease;transition:all var(--anim-fast) ease}.maze-dropdown:hover:not(:disabled){box-shadow:0 0 20px #9d4edd,0 0 40px #9d4edd99,inset 0 0 20px #9d4edd4d;box-shadow:0 0 20px var(--clr-special),0 0 40px #9d4edd99,inset 0 0 20px #9d4edd4d;transform:translateY(-2px)}.maze-dropdown:disabled{cursor:not-allowed;filter:grayscale(1);opacity:.5}.maze-dropdown option{background:#000;background:var(--clr-bg);color:#9d4edd;color:var(--clr-special);padding:10px}.node.maze-building{animation:mazeWallBuild .2s cubic-bezier(.68,-.55,.265,1.55);box-shadow:0 0 40px #9d4edd,0 0 80px #9d4edd;box-shadow:var(--glow-lg) var(--clr-special),0 0 80px var(--clr-special)}@keyframes mazeWallBuild{0%{background:#fff;filter:brightness(5);transform:scale(0) rotate(0deg)}50%{background:#9d4edd;background:var(--clr-special);filter:brightness(3);transform:scale(1.5) rotate(180deg)}to{background:#ff006e;background:var(--clr-secondary);filter:brightness(1);transform:scale(1) rotate(1turn)}}.battle-controls{align-self:start;background:linear-gradient(135deg,#000000b3,#281400b3);border:3px solid #ffd60a;border:3px solid var(--clr-accent);border-radius:12px;box-shadow:0 0 30px #ffd60a,inset 0 0 30px #ffd60a1a;box-shadow:0 0 30px var(--clr-accent),inset 0 0 30px #ffd60a1a;display:flex;flex-direction:column;gap:15px;grid-area:right-panel;padding:20px;width:100%}.battle-toggle{align-items:center;cursor:pointer;display:flex;gap:15px;-webkit-user-select:none;user-select:none}.battle-toggle input[type=checkbox]{display:none}.toggle-slider{background:#ffffff1a;border:3px solid #ffd60a;border:3px solid var(--clr-accent);border-radius:15px;box-shadow:inset 0 0 10px #00000080;height:30px;position:relative;transition:all .15s ease;transition:all var(--anim-fast) ease;width:70px}.toggle-slider:before{background:#ffd60a;background:var(--clr-accent);border-radius:50%;box-shadow:0 0 10px #ffd60a;box-shadow:0 0 10px var(--clr-accent);content:"";height:20px;left:4px;position:absolute;top:3px;transition:all .3s cubic-bezier(.68,-.55,.265,1.55);transition:all var(--anim-normal) cubic-bezier(.68,-.55,.265,1.55);width:20px}.battle-toggle input:checked+.toggle-slider{background:#ffd60a4d;box-shadow:inset 0 0 15px #ffd60a80,0 0 30px #ffd60a;box-shadow:inset 0 0 15px #ffd60a80,0 0 30px var(--clr-accent)}.battle-toggle input:checked+.toggle-slider:before{animation:toggleActivate .5s ease-out;box-shadow:0 0 15px #ffd60a,0 0 30px #ffd60a;box-shadow:0 0 15px var(--clr-accent),0 0 30px var(--clr-accent);left:30px}@keyframes toggleActivate{0%{transform:scale(1)}50%{box-shadow:0 0 30px #ffd60a,0 0 60px #ffd60a;box-shadow:0 0 30px var(--clr-accent),0 0 60px var(--clr-accent);transform:scale(1.3)}to{transform:scale(1)}}.toggle-label{color:#ffd60a;color:var(--clr-accent);font-family:Press Start\ 2P,monospace;font-family:var(--font-arcade);font-size:14px;letter-spacing:2px;text-shadow:0 0 10px #ffd60a;text-shadow:0 0 10px var(--clr-accent)}.algorithm-selector{display:flex;flex-direction:column;gap:10px}.algo-checkbox{align-items:center;background:#00000080;border:2px solid #0000;border-radius:8px;cursor:pointer;display:flex;font-family:Press Start\ 2P,monospace;font-family:var(--font-arcade);font-size:11px;gap:8px;justify-content:flex-start;letter-spacing:.5px;min-width:0;overflow:hidden;padding:10px 12px;transition:all .15s ease;transition:all var(--anim-fast) ease;-webkit-user-select:none;user-select:none}.algo-checkbox:hover{background:#000000b3;box-shadow:0 0 20px currentColor;transform:translateY(-2px)}.algo-checkbox input[type=checkbox]{-webkit-appearance:none;appearance:none;background:#000c;border:2px solid;border-radius:4px;box-sizing:border-box;cursor:pointer;flex-shrink:0;height:18px;position:relative;transition:all .15s ease;transition:all var(--anim-fast) ease;width:18px}.algo-checkbox input[type=checkbox]:checked{animation:checkboxPop .3s cubic-bezier(.68,-.55,.265,1.55);background:currentColor;box-shadow:0 0 15px currentColor,inset 0 0 10px #ffffff80}@keyframes checkboxPop{0%{transform:scale(1)}50%{transform:scale(1.3)}to{transform:scale(1)}}.algo-checkbox input[type=checkbox]:checked:after{color:#000;color:var(--clr-bg);content:"✓";font-size:12px;font-weight:700;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.bfs-color{color:#00fff2;color:var(--clr-primary);text-shadow:0 0 10px #00fff2;text-shadow:0 0 10px var(--clr-primary)}.astar-color{color:#ffd60a;color:var(--clr-accent);text-shadow:0 0 10px #ffd60a;text-shadow:0 0 10px var(--clr-accent)}.dijkstra-color{color:#9d4edd;color:var(--clr-special);text-shadow:0 0 10px #9d4edd;text-shadow:0 0 10px var(--clr-special)}.dfs-color{color:#dc143c;text-shadow:0 0 10px #dc143c}.greedy-color{color:#39ff14;text-shadow:0 0 10px #39ff14}.bidirectional-color{color:#f0f;text-shadow:0 0 10px #f0f}.jumppoint-color{color:#0ff;text-shadow:0 0 10px #0ff}.algo-checkbox:has(.bfs-color){border-color:#00fff2;border-color:var(--clr-primary)}.algo-checkbox:has(.astar-color){border-color:#ffd60a;border-color:var(--clr-accent)}.algo-checkbox:has(.dijkstra-color){border-color:#9d4edd;border-color:var(--clr-special)}.algo-checkbox:has(.dfs-color){border-color:#dc143c}.algo-checkbox:has(.greedy-color){border-color:#39ff14}.algo-checkbox:has(.bidirectional-color){border-color:#f0f}.algo-checkbox:has(.jumppoint-color){border-color:#0ff}.node.bfs-visited{animation:battleReveal .3s cubic-bezier(.68,-.55,.265,1.55),battlePulse 1s ease-in-out .3s infinite;animation:battleReveal var(--anim-normal) cubic-bezier(.68,-.55,.265,1.55),battlePulse 1s ease-in-out infinite var(--anim-normal);background:#00fff299;border-color:#00fff2;border-color:var(--clr-primary);border-width:2px;box-shadow:0 0 15px #00fff2,inset 0 0 8px #00fff299;box-shadow:0 0 15px var(--clr-primary),inset 0 0 8px #00fff299}.node.astar-visited,.node.bfs-visited{transition:opacity .3s ease-out,transform .3s ease-out;transition:opacity var(--anim-normal) ease-out,transform var(--anim-normal) ease-out;z-index:3}.node.astar-visited{animation:battleReveal .3s cubic-bezier(.68,-.55,.265,1.55),battlePulse .9s ease-in-out .3s infinite;animation:battleReveal var(--anim-normal) cubic-bezier(.68,-.55,.265,1.55),battlePulse .9s ease-in-out infinite var(--anim-normal);background:#ffc20a99;border-color:#ffd60a;border-color:var(--clr-accent);border-width:2px;box-shadow:0 0 15px #ffd60a,inset 0 0 8px #ffd60a99;box-shadow:0 0 15px var(--clr-accent),inset 0 0 8px #ffd60a99}.node.dijkstra-visited{animation:battleReveal .3s cubic-bezier(.68,-.55,.265,1.55),battlePulse 1.1s ease-in-out .3s infinite;animation:battleReveal var(--anim-normal) cubic-bezier(.68,-.55,.265,1.55),battlePulse 1.1s ease-in-out infinite var(--anim-normal);background:#a04fde99;border-color:#9d4edd;border-color:var(--clr-special);border-width:2px;box-shadow:0 0 15px #9d4edd,inset 0 0 8px #9d4edd99;box-shadow:0 0 15px var(--clr-special),inset 0 0 8px #9d4edd99}.node.dfs-visited,.node.dijkstra-visited{transition:opacity .3s ease-out,transform .3s ease-out;transition:opacity var(--anim-normal) ease-out,transform var(--anim-normal) ease-out;z-index:3}.node.dfs-visited{animation:battleReveal .3s cubic-bezier(.68,-.55,.265,1.55),dfsWander 1.5s ease-in-out .3s infinite;animation:battleReveal var(--anim-normal) cubic-bezier(.68,-.55,.265,1.55),dfsWander 1.5s ease-in-out infinite var(--anim-normal);background:#db143c99;border-color:#dc143c;border-width:2px;box-shadow:0 0 15px #dc143c,inset 0 0 8px #dc143c99}.node.greedy-visited{animation:greedyRush .3s cubic-bezier(.68,-.55,.265,1.55),battlePulse .7s ease-in-out .3s infinite;animation:greedyRush var(--anim-normal) cubic-bezier(.68,-.55,.265,1.55),battlePulse .7s ease-in-out infinite var(--anim-normal);background:#44ff1f99;border-color:#39ff14;border-width:2px;box-shadow:0 0 20px #39ff14,inset 0 0 10px #39ff14b3}.node.bidirectional-visited,.node.greedy-visited{transition:opacity .3s ease-out,transform .3s ease-out;transition:opacity var(--anim-normal) ease-out,transform var(--anim-normal) ease-out;z-index:3}.node.bidirectional-visited{animation:battleReveal .3s cubic-bezier(.68,-.55,.265,1.55),bidirectionalCollide 1.2s ease-in-out .3s infinite;animation:battleReveal var(--anim-normal) cubic-bezier(.68,-.55,.265,1.55),bidirectionalCollide 1.2s ease-in-out infinite var(--anim-normal);background:#f0f9;border-color:#f0f;border-width:2px;box-shadow:0 0 15px #f0f,inset 0 0 8px #f0f9}.node.jumppoint-visited{animation:jumpFlash .15s cubic-bezier(.68,-.55,.265,1.55),battlePulse .8s ease-in-out .15s infinite;animation:jumpFlash var(--anim-fast) cubic-bezier(.68,-.55,.265,1.55),battlePulse .8s ease-in-out infinite var(--anim-fast);background:#00ffffb3;border-color:#0ff;border-width:2px;box-shadow:0 0 20px #0ff,0 0 40px #00ffff80,inset 0 0 10px #00ffffb3;filter:brightness(1.2);transition:opacity .15s ease-out,transform .15s ease-out;transition:opacity var(--anim-fast) ease-out,transform var(--anim-fast) ease-out;z-index:3}.node.battle-fade-out{animation:battleFadeOut .5s ease-out forwards!important}@keyframes battleFadeOut{0%{opacity:1;transform:scale(1)}to{filter:blur(5px);opacity:0;transform:scale(.5)}}@keyframes battleReveal{0%{filter:blur(10px) brightness(3);opacity:0;transform:scale(0) rotate(0deg)}to{filter:blur(0) brightness(1);opacity:1;transform:scale(1) rotate(1turn)}}@keyframes battlePulse{0%,to{filter:brightness(1);transform:scale(1)}50%{filter:brightness(1.5);transform:scale(1.05)}}.node.bfs-path{animation:battlePathReveal .6s cubic-bezier(.68,-.55,.265,1.55),pathPulse 1.2s ease-in-out .6s infinite;animation:battlePathReveal var(--anim-slow) cubic-bezier(.68,-.55,.265,1.55),pathPulse var(--anim-heartbeat) ease-in-out infinite var(--anim-slow);background:radial-gradient(circle,#fff 0,#00fff2 40%,#00fff2cc 100%);background:radial-gradient(circle,#fff 0,var(--clr-primary) 40%,#00fff2cc 100%);box-shadow:0 0 20px #00fff2,0 0 40px #00fff2,0 0 80px #00fff2e6,inset 0 0 15px #fff;box-shadow:0 0 20px var(--clr-primary),0 0 40px var(--clr-primary),0 0 80px #00fff2e6,inset 0 0 15px #fff}.node.astar-path,.node.bfs-path{border-color:#fff;border-width:2px;transform:scale(1.15);z-index:15}.node.astar-path{animation:battlePathReveal .6s cubic-bezier(.68,-.55,.265,1.55) .05s,pathPulse 1.2s ease-in-out .65s infinite;animation:battlePathReveal var(--anim-slow) cubic-bezier(.68,-.55,.265,1.55) .05s,pathPulse var(--anim-heartbeat) ease-in-out infinite calc(var(--anim-slow) + .05s);background:radial-gradient(circle,#fff 0,#ffd60a 40%,#ffd60acc 100%);background:radial-gradient(circle,#fff 0,var(--clr-accent) 40%,#ffd60acc 100%);box-shadow:0 0 20px #ffd60a,0 0 40px #ffd60a,0 0 80px #ffd60ae6,inset 0 0 15px #fff;box-shadow:0 0 20px var(--clr-accent),0 0 40px var(--clr-accent),0 0 80px #ffd60ae6,inset 0 0 15px #fff}.node.dijkstra-path{animation:battlePathReveal .6s cubic-bezier(.68,-.55,.265,1.55) .1s,pathPulse 1.2s ease-in-out .7s infinite;animation:battlePathReveal var(--anim-slow) cubic-bezier(.68,-.55,.265,1.55) .1s,pathPulse var(--anim-heartbeat) ease-in-out infinite calc(var(--anim-slow) + .1s);background:radial-gradient(circle,#fff 0,#9d4edd 40%,#9d4eddcc 100%);background:radial-gradient(circle,#fff 0,var(--clr-special) 40%,#9d4eddcc 100%);box-shadow:0 0 20px #9d4edd,0 0 40px #9d4edd,0 0 80px #9d4edde6,inset 0 0 15px #fff;box-shadow:0 0 20px var(--clr-special),0 0 40px var(--clr-special),0 0 80px #9d4edde6,inset 0 0 15px #fff}.node.dfs-path,.node.dijkstra-path{border-color:#fff;border-width:2px;transform:scale(1.15);z-index:15}.node.dfs-path{animation:battlePathReveal .6s cubic-bezier(.68,-.55,.265,1.55) .15s,dfsPathWander 1.2s ease-in-out .75s infinite;animation:battlePathReveal var(--anim-slow) cubic-bezier(.68,-.55,.265,1.55) .15s,dfsPathWander var(--anim-heartbeat) ease-in-out infinite calc(var(--anim-slow) + .15s);background:radial-gradient(circle,#fff 0,#dc143c 40%,#dc143ccc 100%);box-shadow:0 0 20px #dc143c,0 0 40px #dc143c,0 0 80px #dc143ce6,inset 0 0 15px #fff}.node.greedy-path{animation:greedyPathRush .15s cubic-bezier(.68,-.55,.265,1.55),pathPulse .8s ease-in-out .15s infinite;animation:greedyPathRush var(--anim-fast) cubic-bezier(.68,-.55,.265,1.55),pathPulse .8s ease-in-out infinite var(--anim-fast);background:radial-gradient(circle,#fff 0,#39ff14 40%,#39ff14cc 100%);box-shadow:0 0 25px #39ff14,0 0 50px #39ff14,0 0 100px #39ff14e6,inset 0 0 20px #fff;filter:brightness(1.2);transform:scale(1.2)}.node.bidirectional-path,.node.greedy-path{border-color:#fff;border-width:2px;z-index:15}.node.bidirectional-path{animation:battlePathReveal .6s cubic-bezier(.68,-.55,.265,1.55) .05s,bidirectionalPathCollide 1.2s ease-in-out .65s infinite;animation:battlePathReveal var(--anim-slow) cubic-bezier(.68,-.55,.265,1.55) .05s,bidirectionalPathCollide var(--anim-heartbeat) ease-in-out infinite calc(var(--anim-slow) + .05s);background:radial-gradient(circle,#fff 0,#f0f 40%,#f0fc 100%);box-shadow:0 0 20px #f0f,0 0 40px #f0f,0 0 80px #ff00ffe6,inset 0 0 15px #fff;transform:scale(1.15)}.node.jumppoint-path{animation:jumpPointPathFlash .15s cubic-bezier(.68,-.55,.265,1.55),pathPulse .8s ease-in-out .15s infinite;animation:jumpPointPathFlash var(--anim-fast) cubic-bezier(.68,-.55,.265,1.55),pathPulse .8s ease-in-out infinite var(--anim-fast);background:radial-gradient(circle,#fff 0,#0ff 40%,#00ffffe6 100%);border-color:#fff;border-width:2px;box-shadow:0 0 30px #0ff,0 0 60px #0ff,0 0 120px #0ff,inset 0 0 20px #fff;filter:brightness(1.3) drop-shadow(0 0 10px #00FFFF);transform:scale(1.2);z-index:15}@keyframes battlePathReveal{0%{background:#fff;box-shadow:0 0 200px #fff;filter:brightness(10) blur(20px);transform:scale(0) rotate(0deg)}50%{filter:brightness(5) blur(10px);transform:scale(2) rotate(180deg)}to{filter:brightness(1) blur(0);transform:scale(1.15) rotate(1turn)}}.node.winner-glow{animation:battlePathReveal .6s cubic-bezier(.68,-.55,.265,1.55),winnerExtreme .6s ease-in-out .6s infinite!important;animation:battlePathReveal var(--anim-slow) cubic-bezier(.68,-.55,.265,1.55),winnerExtreme .6s ease-in-out infinite var(--anim-slow)!important;position:relative;z-index:20!important}.node.winner-glow:after{animation:starSpin 1s linear infinite;color:#fff;content:"";font-size:14px;left:50%;pointer-events:none;position:absolute;text-shadow:0 0 20px #fff;top:50%;transform:translate(-50%,-50%)}@keyframes winnerExtreme{0%,to{box-shadow:0 0 30px currentColor,0 0 60px currentColor;filter:brightness(1);transform:scale(1.15)}50%{box-shadow:0 0 60px currentColor,0 0 120px currentColor,0 0 180px currentColor;filter:brightness(2.5);transform:scale(1.4)}}@keyframes starSpin{0%{opacity:1;transform:translate(-50%,-50%) rotate(0deg) scale(1)}50%{opacity:.7;transform:translate(-50%,-50%) rotate(180deg) scale(1.3)}to{opacity:1;transform:translate(-50%,-50%) rotate(1turn) scale(1)}}.battle-results-backdrop{animation:fadeIn .3s ease-out;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#000000d9;cursor:pointer;height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:1999}.battle-results{animation:resultsEntranceBig .6s cubic-bezier(.68,-.55,.265,1.55);background:linear-gradient(135deg,#000000fa,#140a1efa);border:5px solid #ffd60a;border:5px solid var(--clr-accent);border-radius:16px;box-shadow:0 0 60px #ffd60a,0 0 120px #ffd60a99,inset 0 0 40px #ffd60a4d,0 30px 80px #000000e6;box-shadow:0 0 60px var(--clr-accent),0 0 120px #ffd60a99,inset 0 0 40px #ffd60a4d,0 30px 80px #000000e6;left:50%;max-width:500px;min-width:400px;padding:30px;position:fixed;top:50%;transform:translate(-50%,-50%);z-index:2000}.close-btn{align-items:center;background:linear-gradient(135deg,#ff57224d,#ff57221a);border:3px solid #ff5722;border:3px solid var(--clr-danger);border-radius:8px;box-shadow:0 0 15px #ff5722,inset 0 0 10px #ff572233;box-shadow:0 0 15px var(--clr-danger),inset 0 0 10px #ff572233;color:#ff5722;color:var(--clr-danger);cursor:pointer;display:flex;font-family:Arial,sans-serif;font-size:24px;font-weight:700;height:40px;justify-content:center;line-height:1;padding:0;position:absolute;right:15px;top:15px;transition:all .15s ease;transition:all var(--anim-fast) ease;width:40px;z-index:2001}.close-btn:hover{background:linear-gradient(135deg,#ff572280,#ff572233);box-shadow:0 0 30px #ff5722,0 0 50px #ff572299,inset 0 0 20px #ff572266;box-shadow:0 0 30px var(--clr-danger),0 0 50px #ff572299,inset 0 0 20px #ff572266;transform:scale(1.1) rotate(90deg)}.close-btn:active{box-shadow:0 0 20px #ff5722,inset 0 0 15px #ff572280;box-shadow:0 0 20px var(--clr-danger),inset 0 0 15px #ff572280;transform:scale(.95) rotate(90deg)}@keyframes resultsEntranceBig{0%{filter:blur(20px) brightness(3);opacity:0;transform:translate(-50%,-50%) scale(0) rotate(-10deg)}60%{transform:translate(-50%,-50%) scale(1.1) rotate(2deg)}to{filter:blur(0) brightness(1);opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0deg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.results-title{animation:titleFlash 1.2s ease-in-out infinite;animation:titleFlash var(--anim-heartbeat) ease-in-out infinite;border-bottom:3px solid #ffd60a;border-bottom:3px solid var(--clr-accent);color:#ffd60a;color:var(--clr-accent);font-family:Press Start\ 2P,monospace;font-family:var(--font-arcade);font-size:24px;letter-spacing:4px;margin-bottom:25px;padding-bottom:15px;text-align:center;text-shadow:0 0 20px #ffd60a,0 0 40px #ffd60a,0 0 60px #ffd60a;text-shadow:0 0 20px var(--clr-accent),0 0 40px var(--clr-accent),0 0 60px var(--clr-accent);text-transform:uppercase}@keyframes titleFlash{0%,to{filter:brightness(1);opacity:1}50%{filter:brightness(1.5);opacity:.7}}.result-item{align-items:center;background:#0009;border:3px solid #0000;border-radius:10px;display:flex;justify-content:space-between;margin-bottom:15px;padding:18px;position:relative;transition:all .15s ease;transition:all var(--anim-fast) ease}.result-item:hover{background:#000c;box-shadow:0 0 25px currentColor;transform:scale(1.02)}.result-item.winner{animation:winnerBorder 1.2s ease-in-out infinite;animation:winnerBorder var(--anim-heartbeat) ease-in-out infinite;background:#ffd60a40;border-color:#ffd60a;border-color:var(--clr-accent);box-shadow:0 0 30px #ffd60a,0 0 60px #ffd60a80,inset 0 0 30px #ffd60a66;box-shadow:0 0 30px var(--clr-accent),0 0 60px #ffd60a80,inset 0 0 30px #ffd60a66;transform:scale(1.05)}.result-item.winner:before{animation:crownBounce 1s ease-in-out infinite;content:"👑";font-size:28px;left:50%;position:absolute;top:-15px;transform:translateX(-50%)}@keyframes crownBounce{0%,to{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(-5px)}}@keyframes winnerBorder{0%,to{border-color:#ffd60a;border-color:var(--clr-accent);box-shadow:0 0 20px #ffd60a,inset 0 0 20px #ffd60a4d;box-shadow:0 0 20px var(--clr-accent),inset 0 0 20px #ffd60a4d}50%{border-color:#fff;box-shadow:0 0 40px #ffd60a,0 0 60px #fff,inset 0 0 30px #ffd60a80;box-shadow:0 0 40px var(--clr-accent),0 0 60px #fff,inset 0 0 30px #ffd60a80}}.result-name{font-family:Press Start\ 2P,monospace;font-family:var(--font-arcade);font-size:16px;font-weight:700;letter-spacing:2px;text-transform:uppercase}.result-name.bfs{color:#00fff2;color:var(--clr-primary);text-shadow:0 0 10px #00fff2;text-shadow:0 0 10px var(--clr-primary)}.result-name.aStar,.result-name.astar{color:#ffd60a;color:var(--clr-accent);text-shadow:0 0 10px #ffd60a;text-shadow:0 0 10px var(--clr-accent)}.result-name.dijkstra{color:#9d4edd;color:var(--clr-special);text-shadow:0 0 10px #9d4edd;text-shadow:0 0 10px var(--clr-special)}.result-stats{align-items:flex-end;color:#fffc;display:flex;flex-direction:column;font-family:Courier New,monospace;font-family:var(--font-mono);font-size:13px;gap:8px}.result-stat{align-items:baseline;display:flex;gap:12px}.stat-label{color:#fff9;font-size:11px}.stat-value{color:#fff;font-size:16px;font-weight:700;text-shadow:0 0 8px currentColor}@keyframes victoryFlash{0%{background:radial-gradient(ellipse at center,#00fff24d 0,#0000 50%)}50%{background:radial-gradient(ellipse at center,#00fff280 0,#0000 70%)}to{background:radial-gradient(ellipse at center,#00fff200 0,#0000 50%)}}.App.victory-flash:before{animation:victoryFlash 1s ease-out}@keyframes glowPulse{0%,to{filter:drop-shadow(0 0 5px currentColor)}50%{filter:drop-shadow(0 0 20px currentColor)}}@keyframes screenWarp{0%,to{transform:perspective(1000px) rotateX(0deg) rotateY(0deg)}25%{transform:perspective(1000px) rotateX(1deg) rotateY(-1deg)}50%{transform:perspective(1000px) rotateX(-1deg) rotateY(1deg)}75%{transform:perspective(1000px) rotateX(1deg) rotateY(1deg)}}@keyframes chromaticShift{0%{text-shadow:-2px 0 #ff5722,2px 0 #00fff2;text-shadow:-2px 0 var(--clr-danger),2px 0 var(--clr-primary)}50%{text-shadow:2px 0 #ff5722,-2px 0 #00fff2;text-shadow:2px 0 var(--clr-danger),-2px 0 var(--clr-primary)}to{text-shadow:-2px 0 #ff5722,2px 0 #00fff2;text-shadow:-2px 0 var(--clr-danger),2px 0 var(--clr-primary)}}@media (max-width:1200px){.App{gap:15px;grid-template-areas:"header" "left-panel" "right-panel" "screen" "footer";grid-template-columns:1fr;grid-template-rows:auto auto auto 1fr auto}.battle-controls,.control-panel{align-self:stretch}.action-buttons,.maze-controls,.mode-selector{flex-direction:row;flex-wrap:wrap}}@media (max-width:768px){:root{--node-size:18px}.App{padding:10px}.title{font-size:20px;letter-spacing:3px}.btn-content{font-size:9px;padding:8px 16px}.visualize-btn .btn-content{font-size:12px;padding:12px 28px}.combo-display{min-width:100px;padding:15px;right:10px}.combo-number{font-size:36px}.battle-results{max-width:95%;min-width:90%;padding:20px}.grid-container{padding:10px}}@keyframes dfsWander{0%,to{filter:hue-rotate(0deg);transform:translate(0) scale(1)}25%{filter:hue-rotate(10deg);transform:translate(-3px,2px) scale(1.1) rotate(2deg)}50%{filter:hue-rotate(-10deg);transform:translate(2px,-3px) scale(.9) rotate(-2deg)}75%{filter:hue-rotate(5deg);transform:translate(-2px,-2px) scale(1.05) rotate(1deg)}}@keyframes dfsPathWander{0%,to{box-shadow:0 0 20px #dc143c,0 0 40px #dc143c;transform:scale(1.15) rotate(0deg)}33%{box-shadow:0 0 25px #dc143c,0 0 45px #dc143c;transform:scale(1.2) rotate(5deg)}66%{box-shadow:0 0 30px #dc143c,0 0 50px #dc143c;transform:scale(1.1) rotate(-5deg)}}@keyframes greedyRush{0%{filter:brightness(3);opacity:0;transform:scale(0)}50%{filter:brightness(2);opacity:1;transform:scale(1.5)}to{filter:brightness(1);transform:scale(1)}}@keyframes greedyPathRush{0%{box-shadow:0 0 50px #39ff14;filter:brightness(5);transform:scale(0) rotate(0deg)}50%{box-shadow:0 0 100px #39ff14;filter:brightness(2);transform:scale(1.4) rotate(180deg)}to{box-shadow:0 0 50px #39ff14;filter:brightness(1.2);transform:scale(1.2) rotate(1turn)}}@keyframes bidirectionalCollide{0%{box-shadow:0 0 10px #f0f;transform:scale(1)}50%{box-shadow:0 0 40px #f0f,0 0 80px #f0f;transform:scale(1.3)}to{box-shadow:0 0 20px #f0f;transform:scale(1)}}@keyframes bidirectionalPathCollide{0%,to{box-shadow:0 0 20px #f0f,0 0 40px #f0f;transform:scale(1.15)}50%{box-shadow:0 0 40px #f0f,0 0 80px #f0f,0 0 120px #f0f;filter:brightness(1.5);transform:scale(1.25)}}@keyframes jumpFlash{0%{box-shadow:0 0 50px #0ff;filter:brightness(5) blur(5px);opacity:0;transform:scale(.3)}30%{box-shadow:0 0 40px #0ff,0 0 80px #0ff;filter:brightness(3) blur(0);opacity:1;transform:scale(1.3)}to{box-shadow:0 0 20px #0ff;filter:brightness(1.2);opacity:1;transform:scale(1)}}@keyframes jumpPointPathFlash{0%{box-shadow:0 0 100px #0ff;filter:brightness(10) blur(10px);transform:scale(0) rotate(0deg)}50%{box-shadow:0 0 120px #0ff,0 0 200px #0ff;filter:brightness(3) blur(0);transform:scale(1.5) rotate(1turn)}to{box-shadow:0 0 60px #0ff;filter:brightness(1.3);transform:scale(1.2) rotate(2turn)}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (prefers-contrast:high){.node{border-width:2px}.btn{border-width:3px}}body:before{background-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="300" height="300"><rect width="100%" height="100%" filter="url(%23noise)" opacity=".05"/></svg>');content:"";height:100%;left:0;mix-blend-mode:overlay;opacity:.3;pointer-events:none;position:fixed;top:0;width:100%;z-index:10000}.btn,.combo-display,.node,.title{-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:translateZ(0);will-change:transform}.grid-container{transform-style:preserve-3d}.grid,.node{image-rendering:pixelated;image-rendering:crisp-edges}.grid.rainbow-mode .node.wall{animation:rainbowWall 2s linear infinite}@keyframes rainbowWall{0%{background:red}16.67%{background:#ff0}33.33%{background:#0f0}50%{background:#0ff}66.67%{background:#00f}83.33%{background:#f0f}to{background:red}}.algorithm-selector-single{background:#00000080;border:2px solid #00fff2;border:2px solid var(--clr-primary);border-radius:8px;box-shadow:0 0 20px #00fff24d,inset 0 0 20px #00fff21a;display:flex;flex-direction:column;gap:10px;padding:15px}.algorithm-label{font-size:10px;letter-spacing:2px;text-align:center;text-shadow:0 0 10px #00fff2;text-shadow:0 0 10px var(--clr-primary);text-transform:uppercase}.algorithm-dropdown,.algorithm-label{color:#00fff2;color:var(--clr-primary);font-family:Press Start\ 2P,monospace;font-family:var(--font-arcade)}.algorithm-dropdown{background:#000c;border:2px solid #00fff2;border:2px solid var(--clr-primary);border-radius:6px;box-shadow:0 0 15px #00fff233,inset 0 0 10px #00fff20d;cursor:pointer;font-size:11px;letter-spacing:1px;padding:12px;transition:all .15s ease;transition:all var(--anim-fast) ease;width:100%}.algorithm-dropdown:hover:not(:disabled){border-color:#ffd60a;border-color:var(--clr-accent);box-shadow:0 0 25px #ffd60a,inset 0 0 15px #ffd60a1a;box-shadow:0 0 25px var(--clr-accent),inset 0 0 15px #ffd60a1a;transform:translateY(-2px)}.algorithm-dropdown:disabled{cursor:not-allowed;opacity:.5}.algorithm-dropdown option{background:#000000f2;color:#00fff2;color:var(--clr-primary);padding:10px}.stats-backdrop{animation:fadeIn .3s ease-out;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#000000d9;cursor:pointer;height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:1999}.path-stats{animation:resultsEntranceBig .6s cubic-bezier(.68,-.55,.265,1.55);background:linear-gradient(135deg,#000000fa,#140a1efa);border:5px solid #ffd60a;border:5px solid var(--clr-accent);border-radius:16px;box-shadow:0 0 60px #ffd60a,0 0 120px #ffd60a99,inset 0 0 40px #ffd60a4d,0 30px 80px #000000e6;box-shadow:0 0 60px var(--clr-accent),0 0 120px #ffd60a99,inset 0 0 40px #ffd60a4d,0 30px 80px #000000e6;left:50%;max-width:500px;min-width:400px;padding:30px;position:fixed;top:50%;transform:translate(-50%,-50%);z-index:2000}.stats-title{animation:titleFlash 1.2s ease-in-out infinite;animation:titleFlash var(--anim-heartbeat) ease-in-out infinite;border-bottom:3px solid #ffd60a;border-bottom:3px solid var(--clr-accent);color:#ffd60a;color:var(--clr-accent);font-family:Press Start\ 2P,monospace;font-family:var(--font-arcade);font-size:24px;letter-spacing:4px;margin-bottom:25px;padding-bottom:15px;text-align:center;text-shadow:0 0 20px #ffd60a,0 0 40px #ffd60a,0 0 60px #ffd60a;text-shadow:0 0 20px var(--clr-accent),0 0 40px var(--clr-accent),0 0 60px var(--clr-accent);text-transform:uppercase}.stats-algorithm{align-items:center;background:#0009;border:3px solid #00fff2;border:3px solid var(--clr-primary);border-radius:10px;box-shadow:0 0 30px #00fff2,inset 0 0 20px #00fff233;box-shadow:0 0 30px var(--clr-primary),inset 0 0 20px #00fff233;display:flex;gap:10px;justify-content:center;margin-bottom:20px;padding:18px}.stats-algo-label{color:#00fff2;color:var(--clr-primary);font-size:13px;text-shadow:0 0 10px #00fff2;text-shadow:0 0 10px var(--clr-primary)}.stats-algo-label,.stats-algo-value{font-family:Press Start\ 2P,monospace;font-family:var(--font-arcade);letter-spacing:2px;text-transform:uppercase}.stats-algo-value{color:#ffd60a;color:var(--clr-accent);font-size:18px;font-weight:700;text-shadow:0 0 15px #ffd60a;text-shadow:0 0 15px var(--clr-accent)}.stats-grid{display:flex;flex-direction:column;gap:15px}.stat-card{align-items:center;background:#0009;border:3px solid #00fff24d;border-radius:10px;display:flex;justify-content:space-between;padding:18px;transition:all .15s ease;transition:all var(--anim-fast) ease}.stat-card:hover{background:#000c;border-color:#00fff2;border-color:var(--clr-primary);box-shadow:0 0 25px #00fff2;box-shadow:0 0 25px var(--clr-primary);transform:scale(1.02)}.stat-card-left{align-items:center;display:flex;gap:12px}.stat-icon{filter:drop-shadow(0 0 10px rgba(255,214,10,.5));font-size:24px}.stat-card .stat-label{color:#00fff2;color:var(--clr-primary);font-size:14px;text-shadow:0 0 10px #00fff2;text-shadow:0 0 10px var(--clr-primary);text-transform:uppercase}.stat-card .stat-label,.stat-card .stat-value{font-family:Press Start\ 2P,monospace;font-family:var(--font-arcade);letter-spacing:2px}.stat-card .stat-value{color:#ffd60a;color:var(--clr-accent);font-size:18px;font-weight:700;text-shadow:0 0 20px #ffd60a;text-shadow:0 0 20px var(--clr-accent)}.battle-results-backdrop,.stats-backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background-color:#000000b3;height:100%;left:0;position:fixed;top:0;width:100%;z-index:50}.battle-results,.path-stats{background:linear-gradient(135deg,#1a0033,#001a33);border:2px solid #00fff2;border:2px solid var(--clr-primary);border-radius:12px;box-shadow:0 0 50px #00fff24d;left:50%;min-width:400px;padding:30px;position:fixed;top:50%;transform:translate(-50%,-50%);z-index:51}
/*# sourceMappingURL=main.158824a8.css.map*/