*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{display:flex;justify-content:center;align-items:center;min-height:100vh;background-color:green;font-family:Arial,Helvetica,sans-serif}.app{display:flex;flex-direction:column;align-items:center;position:relative;padding-top:20px}.game-area{display:flex;flex-direction:column;align-items:center;gap:12px}.logo{position:fixed;top:12px;left:12px;width:150px;height:150px;border-radius:8px;object-fit:contain}.mascotlogo{position:fixed;top:12px;left:170px;width:150px;height:150px;border-radius:8px;object-fit:contain;cursor:pointer}#playerInfo{font-size:16pt;font-family:Arial,Helvetica,sans-serif;border:solid 3px #000;margin:5px;padding:5px 14px;border-radius:10px;background-color:#000;color:#fff;width:160px;text-align:center}#warning{min-height:24px}.warning{background-color:#fff;padding:10px 20px;font-weight:700;border-radius:6px;text-align:center;margin-bottom:6px}#chessboard{display:grid;grid-template-columns:repeat(8,80px);grid-template-rows:repeat(8,80px);border:3px solid #222;box-shadow:0 6px 24px #00000080}.square{width:80px;height:80px;display:flex;align-items:center;justify-content:center;position:relative;cursor:pointer;-webkit-user-select:none;user-select:none}.square--light{background-color:#f0d9b5}.square--dark{background-color:#3a6ea5}.square--selected{background-color:#f6f669!important;box-shadow:inset 0 0 0 4px #0000004d}.square--legal{background-color:inherit}.legal-dot{position:absolute;width:28px;height:28px;border-radius:50%;background-color:#0003;pointer-events:none;z-index:1}.legal-capture-ring{position:absolute;inset:0;border-radius:0;border:6px solid rgba(0,0,0,.25);pointer-events:none;z-index:1}.piece{width:72px;height:72px;object-fit:contain;pointer-events:none;z-index:2;position:relative}.piece.rotate{transform:rotate(180deg)}#buttons{display:flex;flex-direction:row;gap:12px;margin-top:4px}#buttons button{padding:10px 22px;font-size:15px;background-color:gold;border:2px solid darkgreen;border-radius:8px;cursor:pointer;font-weight:700;transition:background-color .2s ease}#buttons button:hover{background-color:orange}.promotion-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:200}.promotion-box{background:#fff;border-radius:12px;padding:28px 36px;box-shadow:0 8px 32px #0006;text-align:center;min-width:360px}.promotion-title{font-size:20px;margin-bottom:20px;color:#222}.promotion-choices{display:flex;gap:16px;justify-content:center}.promotion-choice{display:flex;flex-direction:column;align-items:center;gap:6px;background:#f5f5f5;border:2px solid #ccc;border-radius:10px;padding:10px 14px;cursor:pointer;transition:background-color .18s,border-color .18s}.promotion-choice:hover{background-color:#e0f0ff;border-color:#3a6ea5}.promotion-label{font-size:13px;font-weight:700;color:#333}.reset-buttons{display:flex;gap:24px;justify-content:center;margin-top:16px}.reset-btn{padding:10px 32px;font-size:16px;font-weight:700;border:none;border-radius:8px;cursor:pointer;transition:opacity .18s}.reset-btn:hover{opacity:.85}.reset-btn--yes{background-color:#2e8b57;color:#fff}.reset-btn--no{background-color:#c0392b;color:#fff}.popup-overlay{display:flex;position:fixed;inset:0;background:#00000080;align-items:center;justify-content:center;z-index:999}.popup-box{position:relative;background:#fff;padding:28px 24px 20px;width:320px;border-radius:10px;box-shadow:0 4px 18px #00000059;text-align:center;animation:fadeIn .25s ease-in-out}.popup-box h2{margin-bottom:14px;font-size:18px}.popup-close{position:absolute;top:10px;right:12px;background:none;border:none;font-size:20px;cursor:pointer;line-height:1;color:#555}.popup-close:hover{color:#000}.popup-textarea{width:100%;border:1px solid #ccc;border-radius:6px;padding:8px;font-size:14px;resize:vertical;margin-bottom:10px}.popup-help-btn{padding:8px 24px;background-color:#00008b;color:#fff;border:none;border-radius:6px;font-size:15px;cursor:pointer}.popup-help-btn:hover{background-color:#3a6ea5}@keyframes fadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}#signup-button{position:fixed;top:20px;right:20px;padding:10px 20px;font-size:16px;background-color:gold;border:2px solid darkgreen;border-radius:8px;cursor:pointer;z-index:1000;font-weight:700;transition:background-color .2s ease}#signup-button:hover{background-color:orange}.signup-form{position:fixed;top:70px;right:20px;padding:20px;background-color:#fff;border:3px solid darkblue;border-radius:12px;width:300px;box-shadow:0 0 12px #0000004d;z-index:1000;animation:fadeIn .2s ease-in-out}.signup-form h2{margin-bottom:14px;text-align:center;color:#00008b;font-size:20px}.signup-form label{display:block;margin-bottom:4px;font-weight:700;color:#333;font-size:14px}.signup-form input{width:100%;padding:8px;margin-bottom:12px;border:2px solid #ccc;border-radius:6px;font-size:15px}.signup-form input:focus{outline:none;border-color:#00008b}.signup-submit-btn{width:100%;padding:10px;background-color:#00008b;color:#fff;border:none;border-radius:6px;font-size:16px;cursor:pointer;transition:background-color .2s ease}.signup-submit-btn:hover{background-color:#3a6ea5}.signup-error{color:#c0392b;font-size:13px;margin-bottom:10px;text-align:center}.signup-welcome{text-align:center}.signup-welcome h2{color:#2e8b57;margin-bottom:10px}.signup-welcome p{font-size:14px;color:#333;margin-bottom:16px}
