@keyframes piece-move-arc{0%{opacity:1;transform:translate(0)}50%{transform:translate(calc(var(--move-x)*.5),calc(var(--move-y)*.5 - 20px));opacity:1}to{transform:translate(var(--move-x),var(--move-y));opacity:1}}.piece-move-arc{animation:piece-move-arc var(--cg-animation-duration,50ms)cubic-bezier(.4,0,.2,1)}@keyframes piece-capture-poof{0%{opacity:1;transform:scale(1)rotate(0)}50%{opacity:.7;transform:scale(1.2)rotate(5deg)}to{opacity:0;transform:scale(0)rotate(15deg)}}.piece-capture-poof{animation:.3s ease-out forwards piece-capture-poof}@keyframes capture-particles{0%{opacity:1;transform:scale(0)}50%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(1.5)}}.capture-particles{pointer-events:none;background:radial-gradient(circle,#eab30899 0%,#eab30800 70%);width:100%;height:100%;animation:.5s ease-out forwards capture-particles;position:absolute}@keyframes piece-correct-glow{0%,to{filter:drop-shadow(0 0 #0000);transform:scale(1)}50%{filter:drop-shadow(0 0 20px #22c55ecc)drop-shadow(0 0 10px #22c55e99);transform:scale(1.05)}}.piece-correct-glow{animation:.6s ease-in-out piece-correct-glow}@keyframes square-correct-flash{0%,to{box-shadow:none;background-color:#0000}50%{background-color:#22c55e66;box-shadow:0 0 20px #22c55e80}}.square-correct-flash{animation:.6s ease-in-out square-correct-flash}@keyframes piece-incorrect-shake{0%,to{transform:translate(0)rotate(0)}25%{transform:translate(-6px)rotate(-2deg)}75%{transform:translate(6px)rotate(2deg)}}.piece-incorrect-shake{animation:.4s ease-in-out piece-incorrect-shake}@keyframes square-incorrect-flash{0%,to{background-color:#0000}50%{background-color:#ef44444d}}.square-incorrect-flash{animation:.4s ease-in-out square-incorrect-flash}@keyframes square-hint-pulse{0%,to{background-color:#eab30833;transform:scale(1);box-shadow:0 0 #eab30800}50%{background-color:#eab30880;transform:scale(1.03);box-shadow:0 0 20px #eab30899}}.square-hint-pulse{animation:1s ease-in-out infinite square-hint-pulse}@keyframes hint-arrow-bounce{0%,to{opacity:.8;transform:translateY(0)}50%{opacity:1;transform:translateY(-8px)}}.hint-arrow{color:#eab308;pointer-events:none;font-size:24px;animation:.8s ease-in-out infinite hint-arrow-bounce;position:absolute;top:-30px;left:50%;transform:translate(-50%)}@keyframes board-success-celebration{0%{transform:scale(1)rotate(0)}25%{transform:scale(1.03)rotate(-1deg)}50%{transform:scale(.98)rotate(1deg)}75%{transform:scale(1.02)rotate(-.5deg)}to{transform:scale(1)rotate(0)}}.board-success-celebration{animation:1.2s cubic-bezier(.68,-.55,.265,1.55) board-success-celebration}@keyframes confetti-fall{0%{opacity:1;transform:translateY(-50px)rotate(0)}to{opacity:0;transform:translateY(200px)rotate(360deg)}}.confetti-particle{background:var(--confetti-color);width:8px;height:8px;animation:1.5s ease-in forwards confetti-fall;animation-delay:var(--confetti-delay);pointer-events:none;position:absolute}@keyframes board-error-shake{0%,to{transform:translate(0)}25%{transform:translate(-8px)}75%{transform:translate(8px)}}.board-error-shake{animation:.5s ease-in-out board-error-shake}@keyframes banner-slide-in{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}.banner-slide-in{animation:.3s ease-out forwards banner-slide-in}@keyframes button-press{0%,to{transform:scale(1)}50%{transform:scale(.95)}}.button-press{animation:.15s ease-in-out button-press}@keyframes board-loading-shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.board-loading{background:linear-gradient(90deg,#f0d9b5 0%,#e8d5ad 20%,#f0d9b5 40% 100%) 0 0/1000px 100%;animation:1.5s linear infinite board-loading-shimmer}.piece{will-change:transform,opacity}.square{will-change:background-color,box-shadow}.piece.animation-complete,.square.animation-complete{will-change:auto}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.piece-correct-glow{filter:drop-shadow(0 0 10px #22c55e99)}.square-hint-pulse{background-color:#eab30866;animation:none}.confetti-particle{display:none}.board-success-celebration,.board-error-shake{animation:none}}@media (max-width:768px){.confetti-particle:nth-child(n+9){display:none}}@media (max-width:480px){.confetti-particle:nth-child(n+5){display:none}}
