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;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{-webkit-animation:App-logo-spin 20s linear infinite;animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@-webkit-keyframes App-logo-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes App-logo-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.node{display:inline-block;height:25px;outline:1px solid grey;width:25px}.node-visited{-webkit-animation-delay:0;animation-delay:0;-webkit-animation-direction:alternate;animation-direction:alternate;-webkit-animation-duration:1.5s;animation-duration:1.5s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-name:visitedAnimation;animation-name:visitedAnimation;-webkit-animation-play-state:running;animation-play-state:running;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes visitedAnimation{0%{background-color:rgba(0,0,66,.75);border-radius:100%;-webkit-transform:scale(.3);transform:scale(.3)}50%{background-color:rgba(17,104,217,.75)}75%{background-color:rgba(0,217,159,.75);-webkit-transform:scale(1.2);transform:scale(1.2)}to{background-color:rgba(0,190,218,.75);-webkit-transform:scale(1);transform:scale(1)}}@keyframes visitedAnimation{0%{background-color:rgba(0,0,66,.75);border-radius:100%;-webkit-transform:scale(.3);transform:scale(.3)}50%{background-color:rgba(17,104,217,.75)}75%{background-color:rgba(0,217,159,.75);-webkit-transform:scale(1.2);transform:scale(1.2)}to{background-color:rgba(0,190,218,.75);-webkit-transform:scale(1);transform:scale(1)}}.node-wall{background-color:#0c3547}.node-shortest-path{-webkit-animation-delay:0;animation-delay:0;-webkit-animation-direction:alternate;animation-direction:alternate;-webkit-animation-duration:1.5s;animation-duration:1.5s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-name:shortestPath;animation-name:shortestPath;-webkit-animation-play-state:running;animation-play-state:running;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes shortestPath{0%{background-color:#fffe6a;-webkit-transform:scale(.6);transform:scale(.6)}50%{background-color:#fffe6a;-webkit-transform:scale(1.2);transform:scale(1.2)}to{background-color:#fffe6a;-webkit-transform:scale(1);transform:scale(1)}}@keyframes shortestPath{0%{background-color:#fffe6a;-webkit-transform:scale(.6);transform:scale(.6)}50%{background-color:#fffe6a;-webkit-transform:scale(1.2);transform:scale(1.2)}to{background-color:#fffe6a;-webkit-transform:scale(1);transform:scale(1)}}*{box-sizing:border-box;font-family:Arial,sans-serif;margin:0;padding:0}body{background-color:#f7f7f7;display:flex;flex-direction:column;height:100vh;justify-content:space-between}header{background-color:#333;color:#fff;font-size:24px;font-weight:700;padding:20px;text-align:center}.controls{display:flex;flex-wrap:wrap;justify-content:center;margin:20px}.btn{background-color:#fc0;border:none;border-radius:8px;cursor:pointer;font-weight:700;margin:10px;min-width:150px;padding:10px 20px;transition:all .3s ease}.btn:hover{background-color:#e6b800;box-shadow:0 0 15px rgba(0,0,0,.2);-webkit-transform:scale(1.1);transform:scale(1.1)}.btn:active{background-color:#e6a800;-webkit-transform:scale(.95);transform:scale(.95)}.grid{grid-gap:5px;display:grid;gap:5px;grid-template-columns:repeat(auto-fill,minmax(30px,1fr));justify-items:center;margin:20px auto;max-width:800px;transition:all .3s ease;width:100%}.node{align-items:center;background-color:#f0f0f0;border:1px solid #ccc;border-radius:4px;cursor:pointer;display:flex;height:30px;justify-content:center;position:relative;transition:background-color .3s,-webkit-transform .2s;transition:background-color .3s,transform .2s;transition:background-color .3s,transform .2s,-webkit-transform .2s;width:30px}.node-start{background-color:#00b300}.node-finish{background-color:#f30}.node-visited{background-color:#a6a6a6}.node-wall{background-color:#333}.node-shortest-path{background-color:#00b3b3}.node:hover{box-shadow:0 0 10px rgba(0,0,0,.2);-webkit-transform:scale(1.1);transform:scale(1.1)}.node:focus{box-shadow:0 0 10px rgba(0,150,255,.8);outline:none}.node:after{background-color:rgba(0,0,0,.7);border-radius:5px;color:#fff;content:attr(data-tooltip);font-size:12px;left:50%;opacity:0;padding:2px 8px;position:absolute;top:-25px;-webkit-transform:translateX(-50%);transform:translateX(-50%);transition:opacity .2s ease,visibility .2s ease;visibility:hidden}.node:hover:after{opacity:1;visibility:visible}footer{background-color:#333;color:#fff;font-size:16px;padding:10px;text-align:center}@media (max-width:1200px){.controls{margin:15px}.btn{min-width:130px}}@media (max-width:992px){.controls{flex-direction:column;margin:20px 10px}.btn{margin:10px 0;width:100%}}@media (max-width:768px){header{font-size:22px;padding:15px}.controls{flex-direction:column;margin:15px}.btn{margin:10px 0;width:80%}}@media (max-width:480px){header{font-size:18px}.btn{width:100%}.btn,footer{font-size:14px}footer{padding:5px}}.popup{align-items:center;background-color:rgba(0,0,0,.5);bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.popup-content{background-color:#fff;border-radius:10px;padding:20px;text-align:center;width:300px}.popup h2{color:red}.popup p{margin-bottom:20px}.reset-btn{background-color:tomato;border:none;border-radius:5px;color:#fff;cursor:pointer;padding:10px}.reset-btn:hover{background-color:#ff4500}.description{color:#333;font-size:16px;margin:10px auto;text-align:center}.description .node{border:1px solid #999;border-radius:3px;display:inline-block;height:20px;margin:0 5px;vertical-align:middle;width:20px}.node-start{background-color:green}.node-finish{background-color:red}.node-wall{background-color:#000}.description-heading{font-size:14px}
/*# sourceMappingURL=main.960a22f9.css.map*/