:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;--background-color: #f5f1e8;--text-color: #333333;--main-accent-color: #d42a2a;--secondary-accent: #ff5733;--border-color: #4a4a4a;--selected-color: #e57373;--table-row-alt-bg: #eae5d9;--hover-bg-color: #e0dace;--error-color: #d42a2a;color-scheme:light dark;color:var(--text-color);background-color:var(--background-color);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh;background-color:var(--background-color);padding:2rem}h1,h2,h3{font-weight:700;margin:.5em 0;color:var(--main-accent-color);text-transform:uppercase}h1{font-size:3.2em;line-height:1.1;border-bottom:3px solid var(--border-color);padding-bottom:.2em;margin-bottom:1em}button{border-radius:0;border:2px solid var(--border-color);padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:var(--background-color);color:var(--text-color);cursor:pointer;transition:border-color .25s,background-color .25s,color .25s;margin:.5em;text-transform:uppercase}button:hover{border-color:var(--main-accent-color);background-color:var(--hover-bg-color);color:var(--background-color)}button:focus,button:focus-visible{outline:4px auto var(--main-accent-color)}button:disabled{opacity:.5;cursor:not-allowed;border-color:#9e9e9e;background-color:#e0e0e0;color:#757575}input,select{border-radius:0;border:2px solid var(--border-color);padding:.5em;background-color:#fff;color:var(--text-color);font-family:inherit;margin:0 .5em}label{margin:0 .5em;font-weight:700}#root{max-width:1280px;margin:0 auto;padding:2rem;text-align:center;border:1px solid var(--border-color);background-color:var(--background-color)}a{font-weight:500;color:var(--main-accent-color);text-decoration:inherit}a:hover{color:var(--hover-bg-color)}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}button{background-color:#f9f9f9}}#root{max-width:1280px;margin:0 auto;padding:2rem;text-align:center;background-color:var(--background-color)}.app-container{padding:1rem;display:flex;flex-direction:column;align-items:center;width:100%}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}.finished-screen{border:2px solid var(--border-color);padding:2rem;margin-top:2rem;background-color:#fff}.finished-screen h2{color:var(--primary-accent)}.tagline{font-size:1.2rem;color:#666;text-align:center;max-width:800px;margin:-10px auto 30px;font-weight:400}.game-setup{display:flex;flex-direction:column;align-items:center;gap:1.5rem;margin-top:2rem;padding:2rem;border:2px solid var(--border-color);background-color:#fff}.setup-controls label{font-weight:700;margin-right:.5em;color:var(--text-color)}.setup-controls select,.setup-controls input[type=number]{border:2px solid var(--border-color);background-color:var(--background-color);color:var(--text-color);padding:.5em;min-width:150px}.setup-controls button{margin-top:1rem;border-color:var(--primary-accent);background-color:var(--primary-accent);color:var(--background-color)}.setup-controls button:hover{background-color:var(--selected-color);border-color:var(--selected-color);color:var(--text-color)}.algorithm-card{border:1px solid #ccc;padding:15px;margin:10px;border-radius:8px;text-align:left;background-color:#f9f9f9;cursor:pointer;transition:transform .2s ease-in-out,box-shadow .2s ease-in-out;width:200px;display:flex;flex-direction:column;justify-content:space-between;min-height:180px}.algorithm-card:hover{transform:translateY(-5px);box-shadow:0 4px 8px #0000001a}.algorithm-card.selected{border-color:#007bff;background-color:#e7f3ff;box-shadow:0 0 10px #007bff4d}.algorithm-card h3{margin-top:0;margin-bottom:10px;color:#333}.algorithm-card p{font-size:.9em;color:#555;flex-grow:1;margin-bottom:10px}.algorithm-card .handicap-info{font-size:.8em;color:#d9534f;margin-top:auto;margin-bottom:0;font-style:italic}.algorithm-card .handicap-info strong{color:#c9302c}.algorithm-cards-container{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:20px}.game-screen{width:100%;margin-top:2rem;border:2px solid var(--border-color);padding:1rem;background-color:var(--background-color)}.game-screen h2,.game-screen h3{color:var(--primary-accent);text-transform:uppercase;margin-bottom:1em}.sorting-areas{display:flex;justify-content:space-around;gap:2rem;margin-top:1rem}.sort-area{flex-basis:45%;border:2px solid var(--border-color);padding:1rem;background-color:var(--background-color)}.array-container{display:flex;align-items:flex-end;height:300px;border:1px dashed var(--border-color);padding:.5rem;background-color:#e0e0e0;gap:2px}.array-bar{flex-grow:1;background-color:var(--text-color);border:1px solid var(--border-color);border-bottom:none;margin:0 1px;text-align:center;color:var(--background-color);font-size:.7em;position:relative;transition:background-color .1s ease-in-out,height .2s ease-in-out;border-radius:0}.player-area .array-bar{cursor:pointer}.player-area .array-bar:hover{background-color:var(--selected-color)}.player-area .array-bar.player-selected{background-color:var(--primary-accent);border-color:var(--primary-accent)}.algorithm-area .array-bar.comparing{background-color:#ffeb3b;color:var(--text-color)}.algorithm-area .array-bar.swapping{background-color:var(--primary-accent)}.algorithm-area .array-bar.inserting-from{background-color:#4caf50}.algorithm-area .array-bar.inserting-to{background-color:#8bc34a}.algorithm-area .array-bar.sorted{background-color:#bdbdbd;border-color:#9e9e9e}.algorithm-area .array-bar.fumbling{background-color:#ff9800;animation:shake .5s;animation-iteration-count:infinite}@keyframes shake{0%{transform:translate(1px,1px) rotate(0)}10%{transform:translate(-1px,-2px) rotate(-1deg)}20%{transform:translate(-3px) rotate(1deg)}30%{transform:translate(3px,2px) rotate(0)}40%{transform:translate(1px,-1px) rotate(1deg)}50%{transform:translate(-1px,2px) rotate(-1deg)}60%{transform:translate(-3px,1px) rotate(0)}70%{transform:translate(3px,1px) rotate(-1deg)}80%{transform:translate(-1px,-1px) rotate(1deg)}90%{transform:translate(1px,2px) rotate(0)}to{transform:translate(1px,-2px) rotate(-1deg)}}.bar-value{position:absolute;bottom:2px;left:0;right:0;font-size:.8em;color:#fffc;text-shadow:1px 1px 1px rgba(0,0,0,.5);font-weight:700}.algorithm-area .array-bar.comparing .bar-value,.algorithm-area .array-bar.fumbling .bar-value{color:var(--text-color);text-shadow:none}.winner-message{margin-top:2rem;padding:1.5rem;border:3px solid var(--primary-accent);background-color:var(--selected-color)}.winner-message h2{color:var(--background-color);text-shadow:1px 1px 2px var(--text-color)}.winner-message p{font-size:1.2em;font-weight:700;color:var(--text-color)}.winner-message button{border-color:var(--border-color);background-color:var(--background-color);color:var(--primary-accent)}.winner-message button:hover{background-color:var(--text-color);color:var(--background-color);border-color:var(--text-color)}.algorithm-status-message{height:1.5em;font-weight:700;text-align:center;margin-top:.5em;transition:color .2s}.algorithm-status-message.fumble-message{color:#ff9800}.algorithm-status-message.delay-message{color:#2196f3}.leaderboard-container{margin:20px auto;padding:20px;border:2px solid var(--main-accent-color);background-color:var(--background-color);max-width:800px;box-shadow:4px 4px 0 0 var(--shadow-color)}.leaderboard-container h2{text-align:center;color:var(--main-accent-color);margin-bottom:20px;border-bottom:2px solid var(--main-accent-color);padding-bottom:10px}.leaderboard-container table{width:100%;border-collapse:collapse;border:2px solid var(--border-color)}.leaderboard-container th,.leaderboard-container td{border:1px solid var(--border-color);padding:10px 12px;text-align:left}.leaderboard-container th{background-color:var(--main-accent-color);color:var(--background-color);font-weight:700}.leaderboard-container tr:nth-child(2n){background-color:var(--table-row-alt-bg)}.leaderboard-container tr:hover{background-color:var(--hover-bg-color)}.leaderboard-container .error-message{color:var(--error-color);font-weight:700;text-align:center}.leaderboard-container td:first-child,.leaderboard-container td:nth-child(3){text-align:center;font-weight:700}
