:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.cell{width:3vh;height:3vh;display:inline-block;border-top:1px solid #cce;border-left:1px solid #cce;position:relative;background-color:khaki}.cell-sand{background-image:url(/images/sand.png);background-size:cover}.cell-mud{background-image:url(/images/mud.png);background-size:cover}.cell-water{background-image:url(/images/water.png);background-size:cover}.cell-obstacle{background-image:url(/images/obstacle.png);background-size:cover}.cell-visited:after,.cell-path:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}.cell-visited:after{animation:visitedAnimation .5s forwards}.cell-path:after{animation:pathAnimation .5s forwards}.cell-agent:before,.cell-food:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-size:contain;background-repeat:no-repeat;background-position:center;z-index:2}.cell-agent:before{background-image:url(/images/agent.png)}.cell-food:before{z-index:1;background-image:url(/images/food.png)}.cell-cost{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.6rem;font-weight:700;color:#000;text-shadow:0 0 3px white,0 0 3px white;-webkit-user-select:none;user-select:none;z-index:3}@keyframes visitedAnimation{0%{background-color:transparent}to{background-color:#ffdb5866}}@keyframes pathAnimation{0%{background-color:transparent}to{background-color:#0ff9}}body{background-color:#f0f2f5;color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;margin:0;padding:0;box-sizing:border-box}.app{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;text-align:center}.app h1{font-size:2.5rem;color:#2c3e50;margin-bottom:20px}.grid{display:inline-flex;flex-direction:column;border:1px solid rgba(255,255,255,.2);background-color:#0000001a;border-radius:12px;box-shadow:0 4px 15px #0003;margin-top:30px;margin-bottom:20px;padding:10px}.grid-row{display:flex}.control-panel{display:flex;flex-direction:column;gap:30px;align-items:center;width:100%;max-width:320px}.control-group{display:flex;flex-direction:column;width:100%;text-align:left}.control-group label{margin-bottom:10px;font-size:.9rem;color:#b0bec5;text-transform:uppercase;font-weight:500}.control-panel select,.control-panel button{padding:15px 20px;border-radius:8px;border:1px solid rgba(255,255,255,.2);font-size:1rem;font-weight:500;text-align:center;cursor:pointer;transition:all .3s ease-in-out}.control-panel select{background-color:#0000004d;color:#fff}.button-group{margin-top:10px;display:flex;flex-direction:column;gap:15px}.control-panel button{border:none}.start-button{background-color:#4caf50;color:#fff}.reset-button{background-color:#f44336;color:#fff}.control-panel button:hover:not(:disabled){opacity:.85;transform:translateY(-2px);box-shadow:0 4px 8px #0003}.control-panel button:disabled{background-color:#495057;color:#adb5bd;cursor:not-allowed;transform:none}.speed-selector{display:flex;align-items:center;justify-content:space-between;background-color:#0000004d;border-radius:8px;border:1px solid rgba(255,255,255,.2);padding:8px}.speed-selector button{width:45px;height:45px;padding:0;font-size:1.8rem;line-height:1;font-weight:700;background-color:#ffffff1a;border:none;color:#fff;border-radius:6px}.speed-selector button:hover:not(:disabled){background-color:#fff3}.speed-selector button:disabled{background-color:transparent;color:#6c757d;cursor:not-allowed}.speed-display{font-size:1.2rem;font-weight:600;color:#fff;flex-grow:1;text-align:center;-webkit-user-select:none;user-select:none}.terrain-costs{display:flex;flex-direction:column;gap:10px;background-color:#0003;padding:15px;border-radius:8px}.terrain-cost-input{display:flex;justify-content:space-between;align-items:center}.terrain-cost-input label{color:#eceff1;font-weight:500;margin:0}.terrain-cost-input input{width:60px;padding:8px;border-radius:6px;border:1px solid rgba(255,255,255,.3);background-color:#0006;color:#fff;font-size:1rem;text-align:center}.terrain-cost-input input::-webkit-outer-spin-button,.terrain-cost-input input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.main-panel-container{width:450px;flex-shrink:0;height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px;box-sizing:border-box;background-color:#121927d9;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-right:1px solid rgba(255,255,255,.1);text-align:center}.main-panel-container h1{font-size:2.8rem;font-weight:600;color:#fff;margin-bottom:10px;text-shadow:2px 2px 4px rgba(0,0,0,.5)}.description{margin-top:10px;color:#b0bec5;font-size:1rem;line-height:1.6;max-width:320px;border-top:1px solid rgba(255,255,255,.1);padding-top:10px;text-align:left}.description p{margin:10px 0}body{background-color:#1a202c;color:#eceff1;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;margin:0;padding:0;box-sizing:border-box;background-image:url(/images/background.png);background-size:cover;background-position:center;background-attachment:fixed}.app{display:flex;flex-direction:row;width:100vw;height:100vh}.left-panel{width:450px;flex-shrink:0;height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;box-sizing:border-box;background-color:#121927d9;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-right:1px solid rgba(255,255,255,.1);text-align:center}.left-panel h1{font-size:2.8rem;font-weight:600;color:#fff;margin-bottom:40px;text-shadow:2px 2px 4px rgba(0,0,0,.5)}.right-panel{display:flex;flex-direction:column;align-items:center}.info-panel{height:6vh}.grid-panel{margin-top:-4vh;height:94vh;margin-bottom:-4vh}
