.piece{position:absolute;display:flex;align-items:center;justify-content:center;transition:transform .1s ease;pointer-events:auto}.piece.dragging{transition:none;z-index:9999;filter:drop-shadow(0 8px 16px rgba(0,0,0,.4))}.piece-image{width:85%;height:85%;object-fit:contain;pointer-events:none}.piece:not(.dragging){transition:transform .15s ease-out}.promotion-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:transparent;z-index:10000}.promotion-modal{position:fixed;top:50%;left:50%;width:64px;padding:6px;display:flex;flex-direction:column;align-items:center;gap:6px;box-shadow:0 14px 36px #00000073}.promotion-title{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.promotion-pieces{width:100%;display:flex;flex-direction:column;gap:6px}.promotion-piece-btn{width:100%;height:48px;background:var(--color-surface);border:2px solid transparent;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.promotion-piece-btn:hover{background:var(--color-surface-hover);border-color:var(--color-accent);transform:scale(1.1)}.promotion-piece-btn:active{transform:scale(.95)}.promotion-piece-img{width:40px;height:40px;object-fit:contain}@media(max-width:480px){.promotion-modal{width:58px;padding:5px;gap:5px}.promotion-piece-btn{height:43px}.promotion-piece-img{width:36px;height:36px}}.chessboard{position:relative;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-board);-webkit-user-select:none;user-select:none}.chessboard:before{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;background:linear-gradient(135deg,#fff3,#ffffff0d);border-radius:calc(var(--radius-lg) + 2px);z-index:-1}.piece-wrapper{position:absolute;top:0;left:0;will-change:transform;transition:transform .12s ease-out;z-index:1}.piece-wrapper:has(.piece.dragging){z-index:1000}.square.selected-light{background-color:var(--bg-selected-light)}.square.selected-dark{background-color:var(--bg-selected-dark)}.square.last-move-light{background-color:var(--bg-last-move-light)}.square.last-move-dark{background-color:var(--bg-last-move-dark)}.square.premove-light{background-color:var(--bg-premove-light)}.square.premove-dark{background-color:var(--bg-premove-dark)}.square.premove2-light{background-color:#b42814a6}.square.premove2-dark{background-color:#a01e0abf}
