.piece{border-radius:50%;background:rgba(0,0,0,0);display:flex;align-items:center;justify-content:center;z-index:2;position:relative;transition:transform .2s ease;-webkit-user-select:none;-moz-user-select:none;user-select:none}.piece:hover{transform:scale(1.05)}.piece__image{display:block;object-fit:contain}.square-board{width:60px;height:60px;box-shadow:none;display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;border:none;overflow:hidden;transition:opacity .2s ease}.square-board:hover{opacity:.9}.square-board__selected-overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}.square-board__coord-x{right:4px;bottom:2px}.square-board__coord-x,.square-board__coord-y{position:absolute;font-size:12px;color:#aaa;font-weight:700;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:2}.square-board__coord-y{top:2px;left:4px}.square-board__move-indicator{width:18px;height:18px;border-radius:50%;position:absolute;z-index:3}.board-container{display:flex;flex-direction:column;align-items:center;margin-bottom:0}.board-container.board-demo{margin-bottom:30px}.board-container .board-title{color:#fff;font-size:28px;margin-bottom:20px;font-weight:700;letter-spacing:1px;text-shadow:0 2px 4px rgba(0,0,0,.3)}.board-container .board-wrapper{display:flex;flex-direction:column;padding:8px;background:linear-gradient(135deg,#16171a,#1c1d22);box-shadow:0 10px 20px rgba(0,0,0,.2);border-radius:12px;border:1px solid #2a2c33}.board-container .board-wrapper .board-row{display:flex;flex-direction:row}.board-container .board-info{border-radius:12px;color:#aaa;margin-top:16px;text-align:center;font-size:14px}.board-empty{text-align:center;color:#fff;padding:20px}.board-empty h2{margin:0}.input-number{display:flex;align-items:center}.input-number__label{color:#9899ac;font-size:.875rem;font-weight:500;margin-right:.5rem}.input-number__wrapper{position:relative}.input-number__field{width:3rem;max-width:100%;height:1.75rem;border-radius:.5rem;background-color:rgba(42,42,42,.9);border:1px solid rgba(74,74,74,.4);box-shadow:0 0 0 1px hsla(0,0%,100%,.05);text-align:center;color:#9899ac;font-size:.875rem;font-weight:500;outline:none;box-sizing:border-box;overflow:hidden}.input-number__field::-webkit-inner-spin-button,.input-number__field::-webkit-outer-spin-button{margin:0}.input-number__field[type=number]{-moz-appearance:textfield}.input-number__field:focus{border-color:rgba(90,90,90,.6);box-shadow:0 0 0 1px hsla(0,0%,100%,.1)}.input-number__field:hover{border-color:rgba(90,90,90,.5)}@media(max-width:768px){.input-number{display:none}}.board-control{display:flex;align-items:center;gap:.5rem;padding:.5rem;flex-direction:row}.board-control--mobile{flex-direction:column}.board-control .scale-container{display:flex;align-items:center;height:2.5rem;background:linear-gradient(90deg,rgba(26,26,26,.95),rgba(26,26,26,.9),rgba(26,26,26,.85));border-radius:.75rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(58,58,58,.4);box-shadow:0 0 0 1px hsla(0,0%,100%,.05);padding:0 1rem}@media(max-width:768px){.board-control .scale-container{display:none}}.board-control .scale-container .scale-label{color:#9899ac;font-size:.875rem;font-weight:500;margin-right:1rem}.board-control .scale-container .input-group{display:flex;align-items:center;gap:.75rem}.board-control .scale-container .input-group--mobile{gap:.5rem}.board-control .scale-container .input-group .confirm-btn{width:2rem;height:1.75rem;border-radius:.5rem;background-color:rgba(42,42,42,.9);border:1px solid rgba(74,74,74,.4);box-shadow:0 0 0 1px hsla(0,0%,100%,.05);display:flex;align-items:center;justify-content:center;transition:all .2s;cursor:pointer}.board-control .scale-container .input-group .confirm-btn:hover{background-color:rgba(58,58,58,.9);border-color:rgba(90,90,90,.5)}.board-control .scale-container .input-group .confirm-btn .confirm-icon{width:1rem;height:1rem;color:#9899ac}.board-control .play-btn{border-radius:.75rem;background-color:#4469ed;padding:.625rem 2rem;color:#fff;font-size:1rem;font-weight:500;box-shadow:0 0 15px rgba(68,105,237,.3);transition:all .2s;cursor:pointer;border:none;width:auto}.board-control .play-btn:hover{background-color:rgba(68,105,237,.9);box-shadow:0 0 20px rgba(68,105,237,.4)}.board-control .play-btn--mobile{padding:.625rem 0;min-width:80px;width:100%}.winner-main{position:fixed;inset:0;background-color:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;z-index:10;padding:1rem}.winner-main .winner-modal{background:linear-gradient(180deg,rgba(31,41,55,.9),rgba(17,24,39,.9));border-radius:1rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);width:100%;max-width:28rem;overflow:hidden}.winner-main .winner-modal .winner-header{padding-top:3rem;padding-bottom:2rem;display:flex;flex-direction:column;align-items:center;background-color:rgba(31,41,55,.5)}.winner-main .winner-modal .winner-header .winner-icon{width:3rem;height:3rem;background-color:rgba(31,41,55,.8);border-radius:.5rem;margin-bottom:1.25rem;display:flex;align-items:center;justify-content:center}.winner-main .winner-modal .winner-header .winner-icon .star-icon{width:2rem;height:2rem;color:#fff}.winner-main .winner-modal .winner-header .winner-title{text-transform:uppercase;color:#fff;font-weight:700;letter-spacing:.05em;font-size:1.25rem;margin:0;text-align:center}.winner-main .winner-modal .winner-actions{padding:1.5rem;display:flex;flex-direction:column;align-items:stretch;gap:.75rem}.winner-main .winner-modal .winner-actions .btn{padding:.75rem 1rem;color:#fff;font-size:.875rem;border-radius:.5rem;cursor:pointer;border:none;transition:background-color .2s ease;width:100%}.winner-main .winner-modal .winner-actions .btn.btn-secondary{background-color:rgba(55,65,81,.7);border:1px solid #4b5563}.winner-main .winner-modal .winner-actions .btn.btn-secondary:hover{background-color:rgba(75,85,99,.7)}.winner-main .winner-modal .winner-actions .btn.btn-primary{background-color:#2563eb}.winner-main .winner-modal .winner-actions .btn.btn-primary:hover{background-color:#1d4ed8}@media(min-width:640px){.winner-main .winner-modal .winner-actions{flex-direction:row;align-items:center;justify-content:center}.winner-main .winner-modal .winner-actions .btn{width:auto}}.render-container{min-height:100vh;min-width:100vw;background:radial-gradient(ellipse at center,#18181c 60%,#23242a 100%);display:flex;flex-direction:column;align-items:center;justify-content:center}.error-message{color:#ff6b6b;margin-top:12px;font-weight:700}