.pathfinding-grid{border-spacing:0;border-collapse:collapse}.node{border:1px solid rgba(0,0,0,.1);padding:0;transition:background .2s ease-out,box-shadow .2s ease-out;background:#fff;position:relative}@media (hover:hover) and (pointer:fine){.node:hover{transform:scale(1.06);z-index:2}}.node_end,.node_start{background:transparent!important}.node_wall{background:#4a5568;animation:wallAnimation .3s ease-in-out forwards}.node_visited{animation:visitedStartNodeBlueAnimation 1.5s ease-out forwards}.node_visited.node_start{animation:visitedStartNodePurpleAnimation 1.5s ease-out forwards}.node_path{animation:shortestPathAnimation .5s ease-out forwards;background:linear-gradient(45deg,#ffb4a2,#ffcb77);position:relative;overflow:hidden}.node_path:after{content:"";position:absolute;top:0;left:-100%;width:200%;height:100%;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.4) 50%,transparent);animation:pathFlow 2s cubic-bezier(.4,0,.2,1) infinite}.path-step{animation:pathStepAnimation .5s ease-out forwards}.running-girl{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);animation:stepAnimation .1s ease-in-out forwards;opacity:0}@keyframes pathFlow{0%{transform:translateX(-50%) skewX(-15deg)}to{transform:translateX(50%) skewX(-15deg)}}@keyframes stepAnimation{0%{opacity:0;transform:translate(-50%,-50%) scale(.8)}20%{opacity:1;transform:translate(-50%,-50%) scale(1.2)}40%{transform:translate(-50%,-50%) scale(1)}90%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(.8)}}@keyframes wiggle{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes target-bounce{0%,to{transform:scale(1)}50%{transform:scale(1.1) rotate(5deg)}}@keyframes path-step{0%{transform:scale(0) rotate(-180deg)}60%{transform:scale(1.2) rotate(10deg)}to{transform:scale(1) rotate(0)}}@keyframes ripple{0%{transform:scale(.5);opacity:.5}to{transform:scale(1.5);opacity:0}}@keyframes wallAnimation{0%{transform:scale(.3);background-color:#718096}50%{transform:scale(1.2)}to{transform:scale(1);background-color:#4a5568}}@keyframes visitedStartNodePurpleAnimation{0%{transform:scale(.3);background-color:rgba(41,4,24,.75);border-radius:100%}50%{background-color:rgba(97,0,20,.75)}75%{transform:scale(1.2);background-color:rgba(216,5,141,.75)}to{transform:scale(1);background-color:rgba(178,67,255,.75)}}@keyframes visitedStartNodeBlueAnimation{0%{transform:scale(.3);background-color:rgba(0,0,66,.75);border-radius:100%}50%{background-color:rgba(17,104,217,.75)}75%{transform:scale(1.2);background-color:rgba(0,217,159,.75)}to{transform:scale(1);background-color:rgba(148,251,237,.873)}}@keyframes shortestPathAnimation{0%{transform:scale(.3);opacity:0}50%{transform:scale(1.2);opacity:.7}to{transform:scale(1);opacity:1}}@keyframes celebration{0%{transform:translateY(0) scale(1)}50%{transform:translateY(-20px) scale(1.2)}to{transform:translateY(0) scale(1)}}@keyframes bounceAnimation{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes pulseAnimation{0%{transform:scale(1);box-shadow:0 0 0 0 hsla(0,88%,68%,.7)}70%{transform:scale(1.1);box-shadow:0 0 0 10px hsla(0,88%,68%,0)}to{transform:scale(1);box-shadow:0 0 0 0 hsla(0,88%,68%,0)}}@keyframes slide-up{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.animate-slide-up{animation:slide-up .5s ease-out forwards}.animate-wiggle{animation:wiggle 1s ease-in-out infinite}.animate-float{animation:float 2s ease-in-out infinite}.animate-target-bounce{animation:target-bounce 2s ease-in-out infinite}.animate-path-step{animation:path-step .5s ease-out forwards}.animate-ripple{animation:ripple 1s ease-out infinite}.animate-celebration{animation:celebration .5s ease-out forwards}.running-girl-live{animation:traveler-hop 85ms ease-out}@keyframes traveler-hop{0%{transform:scale(.75) translateY(4px);opacity:.65}55%{transform:scale(1.12) translateY(-3px);opacity:1}to{transform:scale(1) translateY(0);opacity:1}}.node_reunion{z-index:40!important;overflow:visible!important}.reunion-stage{position:absolute;left:50%;top:50%;width:220%;height:220%;transform:translate(-50%,-50%);z-index:50;pointer-events:none}.reunion-flash{position:absolute;inset:-30%;border-radius:50%;background:radial-gradient(circle,rgba(180,20,40,.55) 0,rgba(80,0,20,.35) 45%,transparent 70%);animation:scare-pulse .7s ease-in-out infinite}.reunion-girl{left:5%;top:8%;width:62%;height:62%;animation:scare-pop-girl .55s cubic-bezier(.2,1.4,.4,1) both,angry-scare .55s ease-in-out .4s infinite;z-index:2}.reunion-boy,.reunion-girl{position:absolute;transform-origin:center center}.reunion-boy{right:2%;bottom:4%;width:58%;height:58%;animation:scare-pop-boy .6s cubic-bezier(.2,1.4,.4,1) .06s both,fear-tremble .55s ease-in-out .45s infinite;z-index:1}@keyframes scare-pulse{0%,to{opacity:.75;transform:scale(1)}50%{opacity:1;transform:scale(1.12)}}@keyframes scare-pop-girl{0%{transform:scale(.4);opacity:.5}65%{transform:scale(2.15);opacity:1}to{transform:scale(1.85);opacity:1}}@keyframes scare-pop-boy{0%{transform:scale(.35);opacity:.4}70%{transform:scale(1.95);opacity:1}to{transform:scale(1.65);opacity:1}}@keyframes angry-scare{0%,to{transform:scale(1.85) rotate(0deg)}15%{transform:scale(2.15) rotate(-16deg)}30%{transform:scale(1.95) rotate(14deg)}45%{transform:scale(2.25) rotate(-12deg)}60%{transform:scale(1.9) rotate(10deg)}80%{transform:scale(2.1) rotate(-8deg)}}@keyframes fear-tremble{0%,to{transform:scale(1.65) rotate(0deg)}20%{transform:scale(1.35) rotate(8deg) translateY(4%)}40%{transform:scale(1.45) rotate(-7deg)}60%{transform:scale(1.25) rotate(6deg) translateY(6%)}80%{transform:scale(1.4) rotate(-5deg)}}