.cg-wrap{box-sizing:initial;display:block;position:relative}cg-container{display:block}cg-board,cg-container{height:100%;position:absolute;top:0;width:100%}cg-board{background-size:cover;cursor:pointer;left:0;line-height:0;-webkit-user-select:none;user-select:none}cg-board square{height:12.5%;left:0;pointer-events:none;position:absolute;top:0;width:12.5%}cg-board square.move-dest{pointer-events:auto}.cg-wrap piece,cg-board square.last-move{will-change:transform}.cg-wrap piece{background-size:cover;height:12.5%;left:0;pointer-events:none;position:absolute;top:0;width:12.5%;z-index:2}cg-board piece.dragging{cursor:move;
  /* !important to override z-index from 3D piece inline style */z-index:11!important}piece.anim{z-index:8}piece.fading{opacity:.5;z-index:1}.cg-wrap piece.ghost{opacity:.3}.cg-wrap piece svg{height:100%;left:0;opacity:.6;overflow:hidden;pointer-events:none;position:relative;top:0;width:100%;z-index:2}.cg-wrap .cg-custom-svgs,.cg-wrap .cg-shapes,.cg-wrap cg-auto-pieces{height:100%;left:0;overflow:visible;pointer-events:none;position:absolute;top:0;width:100%}.cg-wrap cg-auto-pieces{z-index:2}.cg-wrap cg-auto-pieces piece{opacity:.3}.cg-wrap .cg-shapes{opacity:.6;overflow:hidden;z-index:2}.cg-wrap .cg-custom-svgs{z-index:9}.cg-wrap .cg-custom-svgs svg{overflow:visible}.cg-wrap coords{display:flex;font-family:sans-serif;font-size:9px;opacity:.8;pointer-events:none;position:absolute}.cg-wrap coords.ranks{flex-flow:column-reverse;height:100%;left:4px;top:-20px;width:12px}.cg-wrap coords.ranks.black{flex-flow:column}.cg-wrap coords.ranks.left{align-items:flex-end;left:-15px}.cg-wrap coords.files{bottom:-4px;flex-flow:row;height:16px;left:24px;text-align:center;text-transform:uppercase;width:100%}.cg-wrap coords.files.black{flex-flow:row-reverse}.cg-wrap coords coord{flex:1 1 auto}.cg-wrap coords.ranks coord{transform:translateY(39%)}cg-board{background-color:#f0d9b5;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOng9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZpZXdCb3g9IjAgMCA4IDgiIHNoYXBlLXJlbmRlcmluZz0iY3Jpc3BFZGdlcyI+PGcgaWQ9ImYiPjxnIGlkPSJlIj48ZyBpZD0iZCI+PGcgaWQ9ImMiPjx1c2UgeD0iMSIgeT0iMSIgaHJlZj0iI2EiIHg6aHJlZj0iI2EiLz48cGF0aCBpZD0iYiIgb3BhY2l0eT0iLjIiIGQ9Ik0wIDFoMXYxSDB6Ii8+PHVzZSB4PSIxIiB5PSItMSIgaHJlZj0iI2IiIHg6aHJlZj0iI2IiLz48L2c+PHVzZSB4PSIyIiBocmVmPSIjYyIgeDpocmVmPSIjYyIvPjwvZz48dXNlIHg9IjQiIGhyZWY9IiNkIiB4OmhyZWY9IiNkIi8+PC9nPjx1c2UgeT0iMiIgaHJlZj0iI2UiIHg6aHJlZj0iI2UiLz48L2c+PHVzZSB5PSI0IiBocmVmPSIjZiIgeDpocmVmPSIjZiIvPjwvc3ZnPg==)}cg-board square.move-dest{background:radial-gradient(#14551e80 22%,#208530 0,#0000004d 0,#0000 0)}cg-board square.premove-dest{background:radial-gradient(#141e5580 22%,#203085 0,#0000004d 0,#0000 0)}cg-board square.oc.move-dest{background:radial-gradient(#0000 0,#0000 80%,#1455004d 0)}cg-board square.oc.premove-dest{background:radial-gradient(#0000 0,#0000 80%,#141e5533 0)}cg-board square.move-dest:hover{background:#14551e4d}cg-board square.premove-dest:hover{background:#141e5533}cg-board square.last-move{background-color:#9bc70069}cg-board square.selected{background-color:#14551e80}cg-board square.check{background:radial-gradient(ellipse at center,red 0,#e70000 25%,#a9000000 89%,#9e000000 100%)}cg-board square.current-premove{background-color:#141e5580}.cg-wrap.orientation-black coords.files coord:nth-child(odd),.cg-wrap.orientation-black coords.ranks coord:nth-child(odd),.cg-wrap.orientation-white coords.files coord:nth-child(2n),.cg-wrap.orientation-white coords.ranks coord:nth-child(2n){color:#484848cc}.cg-wrap.orientation-black coords.files coord:nth-child(2n),.cg-wrap.orientation-black coords.ranks coord:nth-child(2n),.cg-wrap.orientation-white coords.files coord:nth-child(odd),.cg-wrap.orientation-white coords.ranks coord:nth-child(odd){color:#fffc}.cg-wrap piece.pawn.white{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PHBhdGggZD0iTTIyLjUgOWMtMi4yMSAwLTQgMS43OS00IDQgMCAuODkuMjkgMS43MS43OCAyLjM4QzE3LjMzIDE2LjUgMTYgMTguNTkgMTYgMjFjMCAyLjAzLjk0IDMuODQgMi40MSA1LjAzLTMgMS4wNi03LjQxIDUuNTUtNy40MSAxMy40N2gyM2MwLTcuOTItNC40MS0xMi40MS03LjQxLTEzLjQ3IDEuNDctMS4xOSAyLjQxLTMgMi40MS01LjAzIDAtMi40MS0xLjMzLTQuNS0zLjI4LTUuNjIuNDktLjY3Ljc4LTEuNDkuNzgtMi4zOCAwLTIuMjEtMS43OS00LTQtNHoiIGZpbGw9IiNmZmYiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjwvc3ZnPg==)}.cg-wrap piece.bishop.white{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxnIGZpbGw9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJidXR0Ij48cGF0aCBkPSJNOSAzNmMzLjM5LS45NyAxMC4xMS40MyAxMy41LTIgMy4zOSAyLjQzIDEwLjExIDEuMDMgMTMuNSAyIDAgMCAxLjY1LjU0IDMgMi0uNjguOTctMS42NS45OS0zIC41LTMuMzktLjk3LTEwLjExLjQ2LTEzLjUtMS0zLjM5IDEuNDYtMTAuMTEuMDMtMTMuNSAxLTEuMzU0LjQ5LTIuMzIzLjQ3LTMtLjUgMS4zNTQtMS45NCAzLTIgMy0yeiIvPjxwYXRoIGQ9Ik0xNSAzMmMyLjUgMi41IDEyLjUgMi41IDE1IDAgLjUtMS41IDAtMiAwLTIgMC0yLjUtMi41LTQtMi41LTQgNS41LTEuNSA2LTExLjUtNS0xNS41LTExIDQtMTAuNSAxNC01IDE1LjUgMCAwLTIuNSAxLjUtMi41IDQgMCAwLS41LjUgMCAyeiIvPjxwYXRoIGQ9Ik0yNSA4YTIuNSAyLjUgMCAxIDEtNSAwIDIuNSAyLjUgMCAxIDEgNSAweiIvPjwvZz48cGF0aCBkPSJNMTcuNSAyNmgxME0xNSAzMGgxNW0tNy41LTE0LjV2NU0yMCAxOGg1IiBzdHJva2UtbGluZWpvaW49Im1pdGVyIi8+PC9nPjwvc3ZnPg==)}.cg-wrap piece.knight.white{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0yMiAxMGMxMC41IDEgMTYuNSA4IDE2IDI5SDE1YzAtOSAxMC02LjUgOC0yMSIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0yNCAxOGMuMzggMi45MS01LjU1IDcuMzctOCA5LTMgMi0yLjgyIDQuMzQtNSA0LTEuMDQyLS45NCAxLjQxLTMuMDQgMC0zLTEgMCAuMTkgMS4yMy0xIDItMSAwLTQuMDAzIDEtNC00IDAtMiA2LTEyIDYtMTJzMS44OS0xLjkgMi0zLjVjLS43My0uOTk0LS41LTItLjUtMyAxLTEgMyAyLjUgMyAyLjVoMnMuNzgtMS45OTIgMi41LTNjMSAwIDEgMyAxIDMiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNOS41IDI1LjVhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDEgMSAxIDB6bTUuNDMzLTkuNzVhLjUgMS41IDMwIDEgMS0uODY2LS41LjUgMS41IDMwIDEgMSAuODY2LjV6IiBmaWxsPSIjMDAwIi8+PC9nPjwvc3ZnPg==)}.cg-wrap piece.rook.white{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik05IDM5aDI3di0zSDl2M3ptMy0zdi00aDIxdjRIMTJ6bS0xLTIyVjloNHYyaDVWOWg1djJoNVY5aDR2NSIgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiLz48cGF0aCBkPSJtMzQgMTQtMyAzSDE0bC0zLTMiLz48cGF0aCBkPSJNMzEgMTd2MTIuNUgxNFYxNyIgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiLz48cGF0aCBkPSJtMzEgMjkuNSAxLjUgMi41aC0yMGwxLjUtMi41Ii8+PHBhdGggZD0iTTExIDE0aDIzIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWpvaW49Im1pdGVyIi8+PC9nPjwvc3ZnPg==)}.cg-wrap piece.queen.white{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik04IDEyYTIgMiAwIDEgMS00IDAgMiAyIDAgMSAxIDQgMHptMTYuNS00LjVhMiAyIDAgMSAxLTQgMCAyIDIgMCAxIDEgNCAwek00MSAxMmEyIDIgMCAxIDEtNCAwIDIgMiAwIDEgMSA0IDB6TTE2IDguNWEyIDIgMCAxIDEtNCAwIDIgMiAwIDEgMSA0IDB6TTMzIDlhMiAyIDAgMSAxLTQgMCAyIDIgMCAxIDEgNCAweiIvPjxwYXRoIGQ9Ik05IDI2YzguNS0xLjUgMjEtMS41IDI3IDBsMi0xMi03IDExVjExbC01LjUgMTMuNS0zLTE1LTMgMTUtNS41LTE0VjI1TDcgMTRsMiAxMnoiIHN0cm9rZS1saW5lY2FwPSJidXR0Ii8+PHBhdGggZD0iTTkgMjZjMCAyIDEuNSAyIDIuNSA0IDEgMS41IDEgMSAuNSAzLjUtMS41IDEtMS41IDIuNS0xLjUgMi41LTEuNSAxLjUuNSAyLjUuNSAyLjUgNi41IDEgMTYuNSAxIDIzIDAgMCAwIDEuNS0xIDAtMi41IDAgMCAuNS0xLjUtMS0yLjUtLjUtMi41LS41LTIgLjUtMy41IDEtMiAyLjUtMiAyLjUtNC04LjUtMS41LTE4LjUtMS41LTI3IDB6IiBzdHJva2UtbGluZWNhcD0iYnV0dCIvPjxwYXRoIGQ9Ik0xMS41IDMwYzMuNS0xIDE4LjUtMSAyMiAwTTEyIDMzLjVjNi0xIDE1LTEgMjEgMCIgZmlsbD0ibm9uZSIvPjwvZz48L3N2Zz4=)}.cg-wrap piece.king.white{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0yMi41IDExLjYzVjZNMjAgOGg1IiBzdHJva2UtbGluZWpvaW49Im1pdGVyIi8+PHBhdGggZD0iTTIyLjUgMjVzNC41LTcuNSAzLTEwLjVjMCAwLTEtMi41LTMtMi41cy0zIDIuNS0zIDIuNWMtMS41IDMgMyAxMC41IDMgMTAuNSIgZmlsbD0iI2ZmZiIgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiLz48cGF0aCBkPSJNMTEuNSAzN2M1LjUgMy41IDE1LjUgMy41IDIxIDB2LTdzOS00LjUgNi0xMC41Yy00LTYuNS0xMy41LTMuNS0xNiA0VjI3di0zLjVjLTMuNS03LjUtMTMtMTAuNS0xNi00LTMgNiA1IDEwIDUgMTBWMzd6IiBmaWxsPSIjZmZmIi8+PHBhdGggZD0iTTExLjUgMzBjNS41LTMgMTUuNS0zIDIxIDBtLTIxIDMuNWM1LjUtMyAxNS41LTMgMjEgMG0tMjEgMy41YzUuNS0zIDE1LjUtMyAyMSAwIi8+PC9nPjwvc3ZnPg==)}.cg-wrap piece.pawn.black{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PHBhdGggZD0iTTIyLjUgOWMtMi4yMSAwLTQgMS43OS00IDQgMCAuODkuMjkgMS43MS43OCAyLjM4QzE3LjMzIDE2LjUgMTYgMTguNTkgMTYgMjFjMCAyLjAzLjk0IDMuODQgMi40MSA1LjAzLTMgMS4wNi03LjQxIDUuNTUtNy40MSAxMy40N2gyM2MwLTcuOTItNC40MS0xMi40MS03LjQxLTEzLjQ3IDEuNDctMS4xOSAyLjQxLTMgMi40MS01LjAzIDAtMi40MS0xLjMzLTQuNS0zLjI4LTUuNjIuNDktLjY3Ljc4LTEuNDkuNzgtMi4zOCAwLTIuMjEtMS43OS00LTQtNHoiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjwvc3ZnPg==)}.cg-wrap piece.bishop.black{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxnIGZpbGw9IiMwMDAiIHN0cm9rZS1saW5lY2FwPSJidXR0Ij48cGF0aCBkPSJNOSAzNmMzLjM5LS45NyAxMC4xMS40MyAxMy41LTIgMy4zOSAyLjQzIDEwLjExIDEuMDMgMTMuNSAyIDAgMCAxLjY1LjU0IDMgMi0uNjguOTctMS42NS45OS0zIC41LTMuMzktLjk3LTEwLjExLjQ2LTEzLjUtMS0zLjM5IDEuNDYtMTAuMTEuMDMtMTMuNSAxLTEuMzU0LjQ5LTIuMzIzLjQ3LTMtLjUgMS4zNTQtMS45NCAzLTIgMy0yeiIvPjxwYXRoIGQ9Ik0xNSAzMmMyLjUgMi41IDEyLjUgMi41IDE1IDAgLjUtMS41IDAtMiAwLTIgMC0yLjUtMi41LTQtMi41LTQgNS41LTEuNSA2LTExLjUtNS0xNS41LTExIDQtMTAuNSAxNC01IDE1LjUgMCAwLTIuNSAxLjUtMi41IDQgMCAwLS41LjUgMCAyeiIvPjxwYXRoIGQ9Ik0yNSA4YTIuNSAyLjUgMCAxIDEtNSAwIDIuNSAyLjUgMCAxIDEgNSAweiIvPjwvZz48cGF0aCBkPSJNMTcuNSAyNmgxME0xNSAzMGgxNW0tNy41LTE0LjV2NU0yMCAxOGg1IiBzdHJva2U9IiNlY2VjZWMiIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiLz48L2c+PC9zdmc+)}.cg-wrap piece.knight.black{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0yMiAxMGMxMC41IDEgMTYuNSA4IDE2IDI5SDE1YzAtOSAxMC02LjUgOC0yMSIgZmlsbD0iIzAwMCIvPjxwYXRoIGQ9Ik0yNCAxOGMuMzggMi45MS01LjU1IDcuMzctOCA5LTMgMi0yLjgyIDQuMzQtNSA0LTEuMDQyLS45NCAxLjQxLTMuMDQgMC0zLTEgMCAuMTkgMS4yMy0xIDItMSAwLTQuMDAzIDEtNC00IDAtMiA2LTEyIDYtMTJzMS44OS0xLjkgMi0zLjVjLS43My0uOTk0LS41LTItLjUtMyAxLTEgMyAyLjUgMyAyLjVoMnMuNzgtMS45OTIgMi41LTNjMSAwIDEgMyAxIDMiIGZpbGw9IiMwMDAiLz48cGF0aCBkPSJNOS41IDI1LjVhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDEgMSAxIDB6bTUuNDMzLTkuNzVhLjUgMS41IDMwIDEgMS0uODY2LS41LjUgMS41IDMwIDEgMSAuODY2LjV6IiBmaWxsPSIjZWNlY2VjIiBzdHJva2U9IiNlY2VjZWMiLz48cGF0aCBkPSJtMjQuNTUgMTAuNC0uNDUgMS40NS41LjE1YzMuMTUgMSA1LjY1IDIuNDkgNy45IDYuNzVTMzUuNzUgMjkuMDYgMzUuMjUgMzlsLS4wNS41aDIuMjVsLjA1LS41Yy41LTEwLjA2LS44OC0xNi44NS0zLjI1LTIxLjM0LTIuMzctNC40OS01Ljc5LTYuNjQtOS4xOS03LjE2bC0uNTEtLjF6IiBmaWxsPSIjZWNlY2VjIiBzdHJva2U9Im5vbmUiLz48L2c+PC9zdmc+)}.cg-wrap piece.rook.black{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik05IDM5aDI3di0zSDl2M3ptMy41LTcgMS41LTIuNWgxN2wxLjUgMi41aC0yMHptLS41IDR2LTRoMjF2NEgxMnoiIHN0cm9rZS1saW5lY2FwPSJidXR0Ii8+PHBhdGggZD0iTTE0IDI5LjV2LTEzaDE3djEzSDE0eiIgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiLz48cGF0aCBkPSJNMTQgMTYuNSAxMSAxNGgyM2wtMyAyLjVIMTR6TTExIDE0VjloNHYyaDVWOWg1djJoNVY5aDR2NUgxMXoiIHN0cm9rZS1saW5lY2FwPSJidXR0Ii8+PHBhdGggZD0iTTEyIDM1LjVoMjFtLTIwLTRoMTltLTE4LTJoMTdtLTE3LTEzaDE3TTExIDE0aDIzIiBmaWxsPSJub25lIiBzdHJva2U9IiNlY2VjZWMiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciIvPjwvZz48L3N2Zz4=)}.cg-wrap piece.queen.black{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxnIHN0cm9rZT0ibm9uZSI+PGNpcmNsZSBjeD0iNiIgY3k9IjEyIiByPSIyLjc1Ii8+PGNpcmNsZSBjeD0iMTQiIGN5PSI5IiByPSIyLjc1Ii8+PGNpcmNsZSBjeD0iMjIuNSIgY3k9IjgiIHI9IjIuNzUiLz48Y2lyY2xlIGN4PSIzMSIgY3k9IjkiIHI9IjIuNzUiLz48Y2lyY2xlIGN4PSIzOSIgY3k9IjEyIiByPSIyLjc1Ii8+PC9nPjxwYXRoIGQ9Ik05IDI2YzguNS0xLjUgMjEtMS41IDI3IDBsMi41LTEyLjVMMzEgMjVsLS4zLTE0LjEtNS4yIDEzLjYtMy0xNC41LTMgMTQuNS01LjItMTMuNkwxNCAyNSA2LjUgMTMuNSA5IDI2eiIgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiLz48cGF0aCBkPSJNOSAyNmMwIDIgMS41IDIgMi41IDQgMSAxLjUgMSAxIC41IDMuNS0xLjUgMS0xLjUgMi41LTEuNSAyLjUtMS41IDEuNS41IDIuNS41IDIuNSA2LjUgMSAxNi41IDEgMjMgMCAwIDAgMS41LTEgMC0yLjUgMCAwIC41LTEuNS0xLTIuNS0uNS0yLjUtLjUtMiAuNS0zLjUgMS0yIDIuNS0yIDIuNS00LTguNS0xLjUtMTguNS0xLjUtMjcgMHoiIHN0cm9rZS1saW5lY2FwPSJidXR0Ii8+PHBhdGggZD0iTTExIDM4LjVhMzUgMzUgMSAwIDAgMjMgMCIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiLz48cGF0aCBkPSJNMTEgMjlhMzUgMzUgMSAwIDEgMjMgMG0tMjEuNSAyLjVoMjBtLTIxIDNhMzUgMzUgMSAwIDAgMjIgMG0tMjMgM2EzNSAzNSAxIDAgMCAyNCAwIiBmaWxsPSJub25lIiBzdHJva2U9IiNlY2VjZWMiLz48L2c+PC9zdmc+)}.cg-wrap piece.king.black{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0yMi41IDExLjYzVjYiIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiLz48cGF0aCBkPSJNMjIuNSAyNXM0LjUtNy41IDMtMTAuNWMwIDAtMS0yLjUtMy0yLjVzLTMgMi41LTMgMi41Yy0xLjUgMyAzIDEwLjUgMyAxMC41IiBmaWxsPSIjMDAwIiBzdHJva2UtbGluZWNhcD0iYnV0dCIgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciIvPjxwYXRoIGQ9Ik0xMS41IDM3YzUuNSAzLjUgMTUuNSAzLjUgMjEgMHYtN3M5LTQuNSA2LTEwLjVjLTQtNi41LTEzLjUtMy41LTE2IDRWMjd2LTMuNWMtMy41LTcuNS0xMy0xMC41LTE2LTQtMyA2IDUgMTAgNSAxMFYzN3oiIGZpbGw9IiMwMDAiLz48cGF0aCBkPSJNMjAgOGg1IiBzdHJva2UtbGluZWpvaW49Im1pdGVyIi8+PHBhdGggZD0iTTMyIDI5LjVzOC41LTQgNi4wMy05LjY1QzM0LjE1IDE0IDI1IDE4IDIyLjUgMjQuNWwuMDEgMi4xLS4wMS0yLjFDMjAgMTggOS45MDYgMTQgNi45OTcgMTkuODVjLTIuNDk3IDUuNjUgNC44NTMgOSA0Ljg1MyA5IiBzdHJva2U9IiNlY2VjZWMiLz48cGF0aCBkPSJNMTEuNSAzMGM1LjUtMyAxNS41LTMgMjEgMG0tMjEgMy41YzUuNS0zIDE1LjUtMyAyMSAwbS0yMSAzLjVjNS41LTMgMTUuNS0zIDIxIDAiIHN0cm9rZT0iI2VjZWNlYyIvPjwvZz48L3N2Zz4=)}*{box-sizing:border-box}body{font-family:Segoe UI,sans-serif;margin:0}.page-container{background:linear-gradient(90deg,#2a2a2a,#4d4d4d);min-height:100vh}.loading-container{align-items:center;background:#262421;display:flex;justify-content:center;min-height:100vh}.loading-text{color:#fff;font-size:18px}.loading-text-large{color:#fff;font-size:28px}.header{color:#fff;display:flex;justify-content:space-between;padding:10px 20px}.header-title{margin:0}.header-user-info{align-items:center;display:flex;gap:12px}.username{font-size:14px;opacity:.8}.logout-button{background:#000;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:6px 12px}.login-page{align-items:center;background:linear-gradient(135deg,#81b64c1a,#0000 34%),linear-gradient(180deg,#201d19,#171512 52%,#0f0e0c);background:linear-gradient(135deg,#81b64c1a,#0000 34%),linear-gradient(180deg,#201d19 0,var(--app-bg,#171512) 52%,#0f0e0c 100%);display:flex;font-family:Segoe UI,sans-serif;isolation:isolate;justify-content:center;min-height:100vh;overflow-x:hidden;overflow-y:auto;padding:24px;position:relative}.login-page:before{animation:login-pattern-drift 22s linear infinite;background-image:linear-gradient(45deg,#ffffff29 25%,#0000 0),linear-gradient(-45deg,#ffffff1f 25%,#0000 0),linear-gradient(45deg,#0000 75%,#ffffff21 0),linear-gradient(-45deg,#0000 75%,#ffffff1a 0);background-position:0 0,0 18px,18px -18px,-18px 0;background-size:36px 36px;content:"";inset:-40px;opacity:.15;position:absolute;z-index:-1}.login-shell{grid-gap:18px;align-items:stretch;display:grid;gap:18px;grid-template-columns:minmax(300px,.95fr) minmax(320px,.85fr);width:min(980px,100%)}.login-page .login-card,.login-visual{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:linear-gradient(180deg,#ffffff1a,hsla(0,0%,100%,.035)),#1c1915e6;border:1px solid #ffffff1f;border-radius:12px;box-shadow:0 26px 70px #0000005c,inset 0 1px 0 #ffffff14;color:#f3efe6;color:var(--text,#f3efe6)}.login-visual{grid-gap:18px;display:grid;gap:18px;grid-template-rows:auto 1fr auto;min-height:550px;overflow:hidden;padding:24px}.login-card-kicker,.login-visual-caption,.login-visual-topline{align-items:center;color:#b9ad9f;color:var(--muted,#b9ad9f);display:inline-flex;font-size:13px;font-weight:800;gap:9px;text-transform:uppercase}.login-brand-mark{align-items:center;background:#81b64c;background:var(--green,#81b64c);border-radius:8px;color:#11100e;display:inline-flex;font-weight:900;height:38px;justify-content:center;width:38px}.login-board-stage{align-self:center;aspect-ratio:1;justify-self:center;perspective:900px;position:relative;width:min(360px,100%)}.login-board{animation:login-board-drift 7s ease-in-out infinite;border:1px solid #ffffff21;border-radius:12px;box-shadow:0 28px 54px #0000005c,inset 0 1px 0 #ffffff1f;display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);inset:16px;overflow:hidden;position:absolute;transform:rotateX(11deg) rotate(-4deg)}.login-square.light{background:#d6c494}.login-square.dark{background:#87a36d}.login-square.active{animation:login-square-pulse 2.8s ease-in-out infinite}.login-piece{animation:login-piece-float 4.7s ease-in-out infinite;background:#141814e6;border:1px solid #ffffff29;border-radius:999px;box-shadow:0 18px 32px #00000052;color:#f8f1df;display:grid;font-family:Arial Unicode MS,DejaVu Sans,Segoe UI Symbol,sans-serif;font-size:39px;height:62px;line-height:1;place-items:center;position:absolute;width:62px}.login-piece-queen{left:18px;top:18px}.login-piece-knight{animation-delay:-1.4s;right:2px;top:43%}.login-piece-pawn{animation-delay:-2.4s;background:#f2ead2eb;bottom:0;color:#24201a;left:39%}.login-visual-caption{background:#ffffff0f;border:1px solid #ffffff1c;border-radius:8px;justify-self:start;padding:9px 11px}.login-page .login-card{animation:login-card-in .44s ease both;display:flex;flex-direction:column;gap:16px;justify-content:center;padding:clamp(26px,5vw,42px);width:100%}.login-card-header{grid-gap:8px;display:grid;gap:8px}.login-title{color:#f3efe6;color:var(--text,#f3efe6);font-size:3rem;font-weight:900;line-height:.98;margin:0}.login-field{grid-gap:7px;display:grid;gap:7px}.login-field-label{color:#b9ad9f;color:var(--muted,#b9ad9f);font-size:12px;font-weight:800;text-transform:uppercase}.login-input-wrap,.password-wrapper{align-items:center;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:8px;color:#b9ad9f;color:var(--muted,#b9ad9f);display:flex;gap:10px;min-height:48px;padding:0 13px;position:relative;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease;width:100%}.login-input-wrap:focus-within,.password-wrapper:focus-within{background:#ffffff14;border-color:#81b64c9e;box-shadow:0 0 0 3px #81b64c26}.login-input{padding:12px 0}.login-input,.login-input-password{background:#0000;border:0;color:#f3efe6;color:var(--text,#f3efe6);font-size:15px;min-width:0;outline:0;width:100%}.login-input-password{padding:12px 34px 12px 0}.login-input-password::placeholder,.login-input::placeholder{color:#8c8275;color:var(--faint,#8c8275)}.login-page .primary-button.login-submit-button{background:#81b64c;background:var(--green,#81b64c);border:1px solid #ffffff14;border-radius:8px;color:#11100e;font-size:15px;font-weight:900;margin-top:2px;min-height:46px;padding:12px 14px;transition:transform .18s ease,background .18s ease;width:100%}.login-page .primary-button.login-submit-button:hover:not(:disabled){background:#91c85b;transform:translateY(-1px)}.login-page .google-button:disabled,.login-page .primary-button.login-submit-button:disabled{cursor:not-allowed;opacity:.62;transform:none}.login-page .google-button{align-items:center;background:#ffffff12;border:1px solid #ffffff21;border-radius:8px;color:#f3efe6;color:var(--text,#f3efe6);cursor:pointer;display:inline-flex;font-size:15px;font-weight:800;gap:8px;justify-content:center;min-height:44px;padding:11px 14px;transition:background .18s ease,border-color .18s ease,transform .18s ease;width:100%}.login-page .google-button:hover:not(:disabled){background:#ffffff1c;border-color:#ffffff38;transform:translateY(-1px)}.divider{grid-gap:10px;align-items:center;color:#8c8275;color:var(--faint,#8c8275);display:grid;font-size:12px;gap:10px;grid-template-columns:1fr auto 1fr;margin:2px 0;text-transform:uppercase}.divider:after,.divider:before{background:#ffffff1a;content:"";height:1px}.toggle-text{align-self:center;background:#0000;border:0;color:#81b64c;color:var(--green,#81b64c);cursor:pointer;font-size:14px;font-weight:800;padding:4px 2px;width:auto}.toggle-text:hover{color:#91c85b}.eye-icon{align-items:center;background:#0000;border:0;border-radius:7px;color:#b9ad9f;color:var(--muted,#b9ad9f);cursor:pointer;display:inline-flex;height:34px;justify-content:center;padding:0;position:absolute;right:9px;top:50%;transform:translateY(-50%);width:34px}.eye-icon:hover{background:#ffffff12;color:#f3efe6;color:var(--text,#f3efe6)}.login-error{background:#c85a4a21;border:1px solid #c85a4a61;border-radius:8px;color:#ffd4ce;font-size:13px;font-weight:700;padding:10px 12px}.home-container{background:linear-gradient(90deg,#2a2a2a,#4d4d4d);min-height:100vh;padding:20px}.home-content{margin:0 auto;max-width:1000px}.home-header{margin-bottom:60px;text-align:center}.home-title{color:#fff;font-size:4rem;font-weight:300;letter-spacing:2px;margin-bottom:15px}.home-subtitle{color:#fff;font-size:1.1rem;font-weight:300;opacity:.8}.quick-start-section{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff14;border:1px solid #ffffff1a;border-radius:20px;margin-bottom:40px;padding:40px;text-align:center}.quick-start-title{color:#fff;font-size:1.8rem;font-weight:400;margin-bottom:15px}.quick-start-description{color:#fff;font-size:1rem;margin-bottom:30px;opacity:.7}.quick-start-buttons{display:flex;flex-wrap:wrap;gap:25px;justify-content:center}.create-game-button{background:linear-gradient(45deg,#2196f3,#1976d2);border:none;border-radius:30px;box-shadow:0 4px 15px #2196f34d;color:#fff;cursor:pointer;font-size:16px;font-weight:500;padding:18px 35px;transition:all .3s ease}.create-game-button:hover{box-shadow:0 6px 20px #2196f366;transform:translateY(-2px)}.bot-game-button{background:linear-gradient(40deg,#9c27b0,#7b1fa2);border:none;border-radius:30px;box-shadow:0 4px 15px #9c27b04d;color:#fff;cursor:pointer;font-size:16px;font-weight:500;padding:18px 35px;transition:all .3s ease}.bot-game-button:hover{box-shadow:0 6px 20px #9c27b066;transform:translateY(-2px)}.puzzle-trainer-button{background:linear-gradient(45deg,#2e8b57,#4f6f52);border:none;border-radius:30px;box-shadow:0 4px 15px #2e8b574d;color:#fff;cursor:pointer;font-size:16px;font-weight:500;padding:18px 35px;transition:all .3s ease}.puzzle-trainer-button:hover{box-shadow:0 6px 20px #2e8b5766;transform:translateY(-2px)}.active-players-section{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff14;border:1px solid #ffffff1a;border-radius:20px;margin-bottom:30px;padding:35px}.active-players-title{color:#fff;font-size:1.6rem;font-weight:400;margin-bottom:25px;text-align:center}.no-players-message{color:#fff;font-size:.95rem;opacity:.6;text-align:center}.share-link{font-size:13px;margin-top:8px;opacity:.5}.players-grid{grid-gap:18px;gap:18px}.player-card{background:#ffffff14;border:1px solid #ffffff1a;border-radius:15px;display:flex;justify-content:space-between;padding:20px;transition:all .3s ease}.player-card:hover{background:#ffffff1f;transform:translateY(-1px)}.player-info h3{color:#fff;font-size:16px;font-weight:500;margin:0}.player-info p{color:#fff;font-size:13px;margin:4px 0 0;opacity:.6}.challenge-button{background:linear-gradient(90deg,#2e8b57,#3a3f44);border:none;border-radius:25px;box-shadow:0 3px 10px #2e8b574d;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:12px 24px;transition:all .3s ease}.challenge-button:hover{box-shadow:0 4px 15px #2e8b5766;transform:translateY(-1px)}.modal-overlay{align-items:center;background:#000c;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:#fff;border-radius:15px;max-width:400px;padding:30px;text-align:center;width:90%}.modal-title{color:#333;margin-bottom:20px}.modal-description{color:#666;font-size:16px;margin-bottom:30px}.modal-buttons{display:flex;gap:15px;justify-content:center}.accept-button{background:#4caf50}.accept-button,.decline-button{border:none;border-radius:25px;color:#fff;cursor:pointer;font-size:16px;font-weight:700;padding:12px 24px}.decline-button{background:#f44336}.chess-board-container{background:linear-gradient(90deg,#2a2a2a,#4d4d4d);min-height:100vh}.chess-board-layout{align-items:flex-start;display:flex;gap:20px;justify-content:space-between;padding:20px}.back-button{align-self:start;background:#ffffff1a;border:1px solid #ffffff4d;border-radius:25px;color:#fff;cursor:pointer;font-size:14px;padding:10px 20px}.chess-board-center{text-align:center}.chess-board-right{align-items:center;gap:20px}.move-history{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff14;border:1px solid #ffffff1a;border-radius:15px;box-shadow:0 4px 20px #0000004d;color:#fff;font-size:14px;max-height:500px;min-width:250px;overflow-y:auto;padding:20px}.move-history-title{border-bottom:1px solid #7ec8e34d;color:#7ec8e3;font-size:1.2rem;font-weight:500;margin-bottom:15px;margin-top:0;padding-bottom:8px;text-align:center}.move-history-table{border-collapse:initial;border-spacing:0;font-size:13px;width:100%}.move-history-table thead th{background:#7ec8e31a;border-bottom:1px solid #7ec8e333;color:#7ec8e3;font-weight:500;padding:12px 8px;text-align:center}.move-history-table tbody td{border-bottom:1px solid #ffffff0d;padding:10px 8px;text-align:center;transition:all .2s ease}.move-history-table tbody tr:hover{background:#ffffff0d}.move-history-cell{border-radius:6px;color:#fff;cursor:pointer;font-weight:400;padding:8px 12px;transition:all .2s ease}.move-history-cell:hover{background:#ffffff1a;transform:translateY(-1px)}.move-history-cell.active{background:#ffd70026;box-shadow:0 2px 8px #ffd7004d;color:gold;font-weight:600}.move-history-controls{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:15px}.move-history-controls button{background:#ffffff1a;border:1px solid #fff3;border-radius:8px;color:#fff;cursor:pointer;font-size:12px;font-weight:500;min-width:60px;padding:8px 12px;transition:all .2s ease}.move-history-controls button:hover:not(:disabled){background:#fff3;box-shadow:0 2px 8px #0003;transform:translateY(-1px)}.move-history-controls button:disabled{cursor:not-allowed;opacity:.4}.bot-game-container{background:linear-gradient(90deg,#2a2a2a,#4d4d4d);min-height:100vh}.bot-game-content{margin:0 auto;max-width:800px;padding:30px 20px}.bot-game-title{color:#fff;font-size:2.2rem;font-weight:400;margin-bottom:30px;text-align:center}.bot-controls{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff14;border:1px solid #ffffff1a;border-radius:15px;box-shadow:0 4px 20px #0000004d;color:#fff;margin-bottom:25px;min-width:300px;padding:20px;text-align:center}.bot-controls label{display:block;font-size:1rem;font-weight:500;margin-bottom:8px}.bot-controls select{background:#ffffff1a;border:1px solid #fff3;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;margin-left:10px;padding:8px 12px;transition:all .2s ease}.bot-controls select:hover{background:#ffffff26;border-color:#ffffff4d}.bot-controls select:focus{border-color:#7ec8e3;box-shadow:0 0 0 2px #7ec8e34d;outline:none}.bot-controls input[type=range]{background:#fff3;border-radius:3px;cursor:pointer;height:6px;margin-left:10px;outline:none;width:150px}.bot-controls input[type=range]::-webkit-slider-thumb{appearance:none;background:#7ec8e3;border-radius:50%;box-shadow:0 2px 6px #0000004d;cursor:pointer;height:18px;-webkit-transition:all .2s ease;transition:all .2s ease;width:18px}.bot-controls input[type=range]::-webkit-slider-thumb:hover{background:#5bb8d3;transform:scale(1.1)}.bot-controls span{color:#7ec8e3;font-size:1.1rem;font-weight:600;margin-left:10px}.evaluation{background:#4caf501a;border:1px solid #4caf504d;border-radius:10px;color:#4caf50}.evaluation,.game-status{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:1rem;font-weight:500;margin-bottom:15px;padding:12px 20px}.game-status{background:#8bc34a1a;border:1px solid #8bc34a4d;border-radius:10px;color:#8bc34a}.bot-game-buttons{display:flex;flex-wrap:wrap;gap:15px;justify-content:center;margin-top:25px}.bot-game-buttons button{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid #fff3;border-radius:25px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;min-width:120px;padding:12px 24px;transition:all .3s ease}.bot-game-buttons button:hover{background:#fff3;box-shadow:0 4px 15px #0000004d;transform:translateY(-2px)}.start-game-button{background:linear-gradient(90deg,#2e8b57,#3a3f44);border:none;border-radius:25px;box-shadow:0 4px 15px #4caf504d;color:#fff;cursor:pointer;font-size:16px;font-weight:600;margin-top:20px;min-width:150px;padding:15px 30px;transition:all .3s ease}.start-game-button:hover{background:linear-gradient(45deg,#45a049,#4caf50);box-shadow:0 6px 20px #4caf5066;transform:translateY(-2px)}.puzzles-page{background:linear-gradient(90deg,#2a2a2a,#4d4d4d);min-height:100vh}.puzzles-content{margin:0 auto;max-width:1180px;padding:24px 20px 48px}.puzzles-toolbar{align-items:flex-end;color:#fff;display:flex;gap:20px;justify-content:space-between;margin-bottom:24px}.puzzles-toolbar h1{font-size:2.2rem;font-weight:400;margin:0}.puzzles-toolbar p{color:#ffffffad;margin:6px 0 0}.puzzle-rating-filter{align-items:center;color:#ffffffd6;display:flex;font-size:14px;gap:10px}.puzzle-rating-filter select{background:#ffffff1a;border:1px solid #fff3;border-radius:8px;color:#fff;padding:8px 10px}.puzzles-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}.puzzle-card-button{background:#ffffff14;border:1px solid #ffffff1f;border-radius:12px;color:#fff;cursor:pointer;display:flex;flex-direction:column;gap:10px;text-align:left;transition:background .2s ease,transform .2s ease}.puzzle-card-button:hover{background:#ffffff24;transform:translateY(-1px)}.puzzle-mini-board{height:154px;margin:0 auto;overflow:hidden;width:154px}.puzzle-card-meta{color:#ffffffb8;display:flex;flex-direction:column;font-size:13px;gap:5px;line-height:1.25;min-height:64px}.puzzle-card-id,.puzzle-card-title{color:#fff;font-weight:600}.puzzle-card-tags{color:#d8e7ffd1}.puzzle-error{background:#f4433624;border:1px solid #f4433640;border-radius:10px;color:#ffb4a8;margin-bottom:18px;padding:12px 14px}.puzzle-loading{background:#ffffff14;border-radius:10px;color:#fff;padding:18px}.puzzle-modal-overlay{align-items:center;background:#000000c7;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:1200}.puzzle-modal{grid-gap:22px;background:#22201d;border:1px solid #ffffff29;border-radius:12px;box-shadow:0 20px 60px #0006;color:#fff;display:grid;gap:22px;grid-template-columns:minmax(320px,520px) 1fr;padding:18px;width:min(960px,100%)}.puzzle-modal-board{overflow:hidden;width:100%}.puzzle-modal-panel{display:flex;flex-direction:column;gap:20px;justify-content:space-between}.puzzle-modal-title{font-size:1.5rem;font-weight:500;margin:0}.puzzle-modal-rating{color:#ffffffad;margin:6px 0 14px}.puzzle-theme-list{display:flex;flex-wrap:wrap;gap:8px}.puzzle-theme-list span{background:#7ec8e31f;border:1px solid #7ec8e338;border-radius:999px;color:#9ad7ed;font-size:12px;padding:5px 9px}.puzzle-status{color:#b7e48c;font-weight:600;min-height:28px}.puzzle-modal-actions{display:flex;flex-wrap:wrap;gap:10px}.puzzle-modal-actions button{background:#ffffff1a;border:1px solid #fff3;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;padding:10px 16px}.puzzle-modal-actions button:disabled{cursor:not-allowed;opacity:.45}.settings-container{color:#fff;padding:20px}.settings-section{margin-bottom:20px}.settings-section label{display:block;margin-bottom:5px}.settings-section input[type=checkbox],.settings-section select{margin-left:10px}@media (max-width:768px){.chess-board-layout{align-items:center;flex-direction:column;gap:15px;padding:10px}.chess-board-center{order:1}.back-button{align-self:center;margin-bottom:10px;order:0}.chess-board-right{max-width:400px;order:2;width:100%}.move-history{font-size:12px;max-height:300px;min-width:auto;padding:15px;width:100%}.move-history-title{font-size:1rem;margin-bottom:12px}.move-history-table{font-size:11px}.move-history-table thead th{padding:8px 6px}.move-history-table tbody td{padding:6px 4px}.move-history-cell{padding:6px 8px}.move-history-controls{flex-wrap:wrap;gap:6px;justify-content:center}.move-history-controls button{font-size:11px;min-width:50px;padding:6px 10px}.quick-start-buttons{align-items:center;flex-direction:column}.player-card{flex-direction:column;gap:10px;text-align:center}.home-title{font-size:2.5rem}.active-players-section,.quick-start-section{padding:25px}.bot-game-button,.create-game-button,.puzzle-trainer-button{font-size:14px;padding:15px 25px}.puzzles-toolbar{align-items:flex-start;flex-direction:column}.puzzle-modal{grid-template-columns:1fr;max-height:calc(100vh - 32px);overflow:auto}}@media (max-width:480px){.chess-board-layout{gap:10px;padding:5px}.move-history{font-size:11px;max-height:250px;padding:12px}.move-history-title{font-size:.9rem;margin-bottom:10px}.move-history-table{font-size:10px}.move-history-table thead th{padding:6px 4px}.move-history-table tbody td{padding:4px 2px}.move-history-cell{padding:4px 6px}.move-history-controls button{font-size:10px;min-width:45px;padding:4px 8px}.back-button{font-size:12px;padding:8px 16px}.home-title{font-size:2rem}.active-players-section,.quick-start-section{padding:20px}.bot-game-content{padding:15px}.bot-game-title{font-size:1.8rem;margin-bottom:20px}.bot-controls{font-size:14px;min-width:250px;padding:15px}.bot-controls label{font-size:.9rem}.bot-controls input[type=range]{width:120px}.evaluation,.game-status{font-size:.9rem;padding:10px 15px}.bot-game-buttons{gap:10px}.bot-game-buttons button{font-size:12px;min-width:100px;padding:10px 18px}.start-game-button{font-size:14px;min-width:120px;padding:12px 24px}.puzzles-content{padding:16px 12px 32px}.puzzles-grid{gap:12px;grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.puzzle-card-button{padding:10px}.chess-board-layout{gap:10px;padding:5px}.move-history{font-size:11px;max-height:250px;padding:12px}.move-history-title{font-size:.9rem;margin-bottom:10px}.move-history-table{font-size:10px}.move-history-table thead th{padding:6px 4px}.move-history-table tbody td{padding:4px 2px}.move-history-cell{padding:4px 6px}.move-history-controls button{font-size:10px;min-width:45px;padding:4px 8px}.back-button{font-size:12px;padding:8px 16px}.home-title{font-size:2rem}.active-players-section,.quick-start-section{padding:20px}.bot-game-content{padding:10px}.bot-game-title{font-size:1.5rem;margin-bottom:15px}.bot-controls{font-size:12px;min-width:200px;padding:12px}.bot-controls label{font-size:.8rem}.bot-controls select{font-size:12px;padding:6px 8px}.bot-controls input[type=range]{width:100px}.bot-controls span{font-size:.9rem}.evaluation,.game-status{font-size:.8rem;padding:8px 12px}.bot-game-buttons{gap:8px}.bot-game-buttons button{font-size:11px;min-width:80px;padding:8px 14px}.start-game-button{font-size:12px;min-width:100px;padding:10px 20px}}:root{--app-bg:#171512;--panel:#24211d;--panel-2:#2e2923;--panel-3:#373128;--line:#4a4338;--text:#f3efe6;--muted:#b9ad9f;--faint:#8c8275;--green:#81b64c;--green-strong:#6aa13f;--gold:#d7a441;--red:#c85a4a;--blue:#5a91c8;--shadow:0 16px 40px #00000047}body{background:#171512;background:var(--app-bg);color:#f3efe6;color:var(--text)}button,input,select{font:inherit}a svg,button svg{flex:0 0 auto}.bot-game-container,.chess-board-container,.home-container,.loading-container,.puzzles-page{background:radial-gradient(circle at top left,#81b64c14,#0000 28%),linear-gradient(180deg,#1b1814,#171512 44%,#11100e);background:radial-gradient(circle at top left,#81b64c14,#0000 28%),linear-gradient(180deg,#1b1814 0,var(--app-bg) 44%,#11100e 100%);color:#f3efe6;color:var(--text);min-height:100vh;padding:0}.header{grid-gap:16px;align-items:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#171512f0;border-bottom:1px solid #ffffff14;display:grid;gap:16px;grid-template-columns:minmax(150px,1fr) auto minmax(150px,1fr);padding:12px 24px;position:sticky;top:0;z-index:50}.header-brand{color:#f3efe6;color:var(--text);font-weight:700;gap:10px;text-decoration:none}.brand-mark,.header-brand{align-items:center;display:inline-flex;letter-spacing:0}.brand-mark{background:#81b64c;background:var(--green);border-radius:8px;color:#11100e;font-weight:800;height:34px;justify-content:center;width:34px}.header-title{display:none}.header-nav{background:#ffffff0f;border:1px solid #ffffff14;border-radius:8px;gap:4px;padding:4px}.header-nav,.header-nav a{align-items:center;display:inline-flex}.header-nav a{border-radius:6px;color:#b9ad9f;color:var(--muted);font-size:14px;gap:7px;line-height:1;padding:8px 11px;text-decoration:none}.header-nav a.active,.header-nav a:hover{background:#ffffff1a;color:#f3efe6;color:var(--text)}.header-user-info{gap:10px;justify-content:flex-end}.username{align-items:center;color:#b9ad9f;color:var(--muted);display:inline-flex;gap:6px;max-width:160px;opacity:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.back-button,.bot-game-buttons button,.copy-link-button,.logout-button,.move-history-controls button,.puzzle-modal-actions button,.puzzle-tool-row button,.refresh-button{align-items:center;background:#ffffff12;border:1px solid #ffffff1f;border-radius:8px;color:#f3efe6;color:var(--text);cursor:pointer;display:inline-flex;gap:8px;justify-content:center;transition:background .16s ease,border-color .16s ease,transform .16s ease}.logout-button{padding:8px 11px}.back-button:hover,.bot-game-buttons button:hover,.copy-link-button:hover,.logout-button:hover,.move-history-controls button:hover:not(:disabled),.puzzle-modal-actions button:hover:not(:disabled),.puzzle-tool-row button:hover:not(:disabled),.refresh-button:hover:not(:disabled){background:#ffffff1f;border-color:#fff3;box-shadow:none;transform:translateY(-1px)}.home-content,.puzzles-content{margin:0 auto;max-width:1180px;padding:34px 24px 56px}.home-hero{grid-gap:28px;align-items:end;display:grid;gap:28px;grid-template-columns:minmax(0,1fr) 220px;margin-bottom:22px}.eyebrow{align-items:center;color:#d7a441;color:var(--gold);display:inline-flex;font-size:13px;font-weight:700;gap:7px;letter-spacing:0;margin-bottom:10px;text-transform:uppercase}.bot-game-title,.home-title,.puzzles-toolbar h1{color:#f3efe6;color:var(--text);font-size:clamp(2rem,5vw,4.25rem);font-weight:800;letter-spacing:0;line-height:.95;margin:0}.home-subtitle{color:#b9ad9f;color:var(--muted);font-size:1.05rem;line-height:1.55;margin:18px 0 0;max-width:680px;opacity:1}.home-status-panel{background:#24211d;background:var(--panel);border:1px solid #4a4338;border:1px solid var(--line);border-radius:8px;box-shadow:0 16px 40px #00000047;box-shadow:var(--shadow);display:flex;flex-direction:column;justify-content:space-between;min-height:128px;padding:18px}.home-status-panel strong{font-size:42px;line-height:1}.home-status-panel span{color:#b9ad9f;color:var(--muted)}.status-dot-row{align-items:center;display:inline-flex;gap:8px}.mode-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:18px}.mode-card{grid-gap:12px;align-content:space-between;background:#24211d;background:var(--panel);border:1px solid #4a4338;border:1px solid var(--line);border-radius:8px;box-shadow:0 16px 40px #00000047;box-shadow:var(--shadow);color:#f3efe6;color:var(--text);cursor:pointer;display:grid;gap:12px;min-height:158px;padding:18px;text-align:left}.mode-card:hover{background:#2e2923;background:var(--panel-2);transform:translateY(-1px)}.primary-mode{border-color:#81b64c8c}.mode-icon{align-items:center;background:#81b64c29;border-radius:8px;color:#81b64c;color:var(--green);display:inline-flex;height:42px;justify-content:center;width:42px}.mode-label{display:block;font-size:20px;font-weight:800}.mode-detail{color:#b9ad9f;color:var(--muted);display:block;font-size:14px;line-height:1.4}.active-players-section,.quick-start-section{-webkit-backdrop-filter:none;backdrop-filter:none;background:#24211d;background:var(--panel);border:1px solid #4a4338;border:1px solid var(--line);border-radius:8px;box-shadow:0 16px 40px #00000047;box-shadow:var(--shadow);margin:0;padding:18px}.puzzles-toolbar,.section-heading{align-items:flex-end;display:flex;gap:18px;justify-content:space-between;margin-bottom:18px}.active-players-title,.section-heading h2{color:#f3efe6;color:var(--text);font-size:22px;font-weight:800;margin:0;text-align:left}.puzzles-toolbar p,.section-heading p{color:#b9ad9f;color:var(--muted);font-size:14px;margin:5px 0 0}.copy-link-button,.refresh-button{padding:10px 13px;white-space:nowrap}.lobby-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.refresh-button:disabled{cursor:wait;opacity:.5;transform:none}.empty-state{grid-gap:8px;border:1px dashed #ffffff29;border-radius:8px;color:#b9ad9f;color:var(--muted);display:grid;gap:8px;min-height:180px;padding:26px;place-items:center;text-align:center}.empty-state strong{color:#f3efe6;color:var(--text)}.empty-state span{color:#8c8275;color:var(--faint);font-size:13px}.players-grid{grid-gap:10px;display:grid;gap:10px}.player-card{grid-gap:12px;align-items:center;background:#ffffff0d;border:1px solid #ffffff14;border-radius:8px;display:grid;gap:12px;grid-template-columns:42px minmax(0,1fr) auto auto;padding:12px}.player-card:hover{background:#ffffff14;transform:none}.player-avatar{align-items:center;background:#3b4f2c;border-radius:8px;color:#e8f5d5;display:inline-flex;font-size:13px;font-weight:800;height:42px;justify-content:center;width:42px}.player-info{min-width:0}.player-info h3,.player-info p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-info h3{color:#f3efe6;color:var(--text);font-weight:700}.player-info p{color:#b9ad9f;color:var(--muted);opacity:1}.player-state{align-items:center;color:#81b64c;color:var(--green);display:inline-flex;font-size:13px;font-weight:700;gap:6px}.accept-button,.challenge-button,.primary-action,.primary-button,.start-game-button{align-items:center;background:#81b64c;background:var(--green);border:1px solid #ffffff14;border-radius:8px;box-shadow:none;color:#11100e;cursor:pointer;display:inline-flex;font-weight:800;gap:8px;justify-content:center;padding:10px 14px}.accept-button:hover,.challenge-button:hover,.primary-action:hover,.primary-button:hover,.start-game-button:hover{background:#91c85b;box-shadow:none;transform:translateY(-1px)}.decline-button{background:#c85a4a29;border:1px solid #c85a4a59;border-radius:8px;color:#ffd4ce}.modal-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#000000b8}.modal-content{background:#24211d;background:var(--panel);border:1px solid #4a4338;border:1px solid var(--line);border-radius:8px;box-shadow:0 16px 40px #00000047;box-shadow:var(--shadow)}.modal-content,.modal-title{color:#f3efe6;color:var(--text)}.modal-description{color:#b9ad9f;color:var(--muted)}.chess-board-layout{grid-gap:22px;align-items:start;display:grid;gap:22px;grid-template-columns:minmax(320px,560px) minmax(270px,1fr);justify-content:center;margin:0 auto;max-width:1180px;padding:18px 24px 48px}.game-topbar{align-items:center;display:flex;gap:12px;justify-content:space-between;margin:0 auto;max-width:1180px;padding:18px 24px 0}.game-state-strip{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.game-state-strip span{align-items:center;background:#ffffff12;border:1px solid #ffffff14;border-radius:8px;color:#b9ad9f;color:var(--muted);display:inline-flex;font-size:13px;gap:6px;padding:8px 10px}.game-result-banner{background:#81b64c1f;border-bottom:1px solid #81b64c38;border-top:1px solid #81b64c38;color:#e9ffd2;margin:14px auto 0;max-width:1180px;padding:12px 24px}.chess-board-center,.puzzle-modal-board{display:flex;justify-content:center}.cg-wrap{border-radius:6px;box-shadow:0 18px 38px #0000004d;overflow:hidden}.chess-board-right{align-items:stretch}.move-history{background:#24211d;background:var(--panel);border:1px solid #4a4338;border:1px solid var(--line);border-radius:8px;box-shadow:0 16px 40px #00000047;box-shadow:var(--shadow);color:#f3efe6;color:var(--text);max-height:520px;min-width:0;width:100%}.move-history-title{border-bottom-color:#ffffff14;color:#f3efe6;color:var(--text)}.move-history-table thead th{background:#ffffff0a;color:#b9ad9f;color:var(--muted)}.move-history-cell.active{background:#d7a441;background:var(--gold);box-shadow:none;color:#11100e}.move-history-controls{margin-top:0}.move-history-controls button{font-size:13px;min-width:72px;padding:9px 11px}.move-history-controls button:disabled,.puzzle-modal-actions button:disabled,.puzzle-tool-row button:disabled{cursor:not-allowed;opacity:.42;transform:none}.bot-game-content{max-width:1060px;padding:34px 24px 56px}.bot-game-heading{margin-bottom:18px;text-align:center}.bot-setup-panel{grid-gap:10px;align-items:stretch;display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr));width:min(760px,100%)}.bot-setup-panel .bot-controls{grid-gap:10px;align-content:center;display:grid;gap:10px;margin-bottom:0;max-width:none;min-height:118px;min-width:0;padding:14px}.bot-setup-panel .bot-controls label{margin-bottom:0}.bot-slider-row{grid-gap:10px;align-items:center;display:grid;gap:10px;grid-template-columns:minmax(0,1fr) 34px}.bot-controls .bot-slider-row input[type=range]{margin-left:0;width:100%}.bot-slider-row span{font-feature-settings:"tnum";color:#f3efe6;color:var(--text);font-size:14px;font-variant-numeric:tabular-nums;font-weight:900;margin-left:0;text-align:right}.bot-eval-control{justify-items:center}.bot-setup-eval-toggle{justify-content:space-between;min-height:42px;width:100%}.bot-controls{-webkit-backdrop-filter:none;backdrop-filter:none;background:#24211d;background:var(--panel);border:1px solid #4a4338;border:1px solid var(--line);border-radius:8px;box-shadow:0 16px 40px #00000047;box-shadow:var(--shadow);margin-bottom:12px;max-width:420px;min-width:320px}.bot-controls label{color:#b9ad9f;color:var(--muted);font-size:13px;letter-spacing:0;text-align:left;text-transform:uppercase}.segmented-control{grid-gap:4px;background:#ffffff0f;border:1px solid #ffffff14;border-radius:8px;display:grid;gap:4px;grid-template-columns:1fr 1fr;padding:4px}.segmented-control button{background:#0000;border:0;border-radius:6px;color:#b9ad9f;color:var(--muted);cursor:pointer;padding:9px 12px}.segmented-control button.selected{background:#81b64c;background:var(--green);color:#11100e;font-weight:800}.bot-controls input[type=range]{accent-color:#81b64c;accent-color:var(--green);width:min(220px,100%)}.evaluation,.game-status{background:#ffffff12;border:1px solid #ffffff1a;border-radius:8px;color:#f3efe6;color:var(--text)}.bot-game-buttons button{min-width:110px;padding:10px 14px}.puzzles-toolbar{color:#f3efe6;color:var(--text)}.puzzles-toolbar h1{font-size:clamp(2rem,4vw,3.5rem)}.puzzle-toolbar-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.puzzle-session-panel,.puzzle-session-strip{display:flex;flex-wrap:wrap;gap:7px}.puzzle-session-strip{justify-content:flex-end}.puzzle-session-panel span,.puzzle-session-strip span{align-items:baseline;background:#ffffff0f;border:1px solid #ffffff1a;border-radius:8px;color:#b9ad9f;color:var(--muted);display:inline-flex;font-size:12px;gap:5px;min-height:34px;padding:7px 9px;white-space:nowrap}.puzzle-session-panel strong,.puzzle-session-strip strong{font-feature-settings:"tnum";color:#f3efe6;color:var(--text);font-size:18px;font-variant-numeric:tabular-nums;line-height:1}.played-count-pill{align-items:baseline;background:#81b64c1f;border:1px solid #81b64c59;border-radius:8px;color:#b9ad9f;color:var(--muted);display:inline-flex;font-size:12px;gap:6px;min-height:36px;padding:8px 10px;white-space:nowrap}.played-count-pill strong{font-feature-settings:"tnum";color:#81b64c;color:var(--green);font-size:18px;font-variant-numeric:tabular-nums;line-height:1}.reset-history-button{background:#ffffff0d;border:1px solid #4a4338;border:1px solid var(--line);border-radius:8px;min-height:38px}.puzzle-result-trail{align-items:center;display:flex;gap:5px;justify-content:flex-end;min-height:32px}.modal-trail{justify-content:flex-start;margin-top:9px}.trail-empty{color:#b9ad9f;color:var(--muted);font-size:12px}.trail-dot{align-items:center;border:1px solid #ffffff1f;border-radius:999px;display:inline-flex;height:24px;justify-content:center;width:24px}.trail-dot.right{background:#81b64c;background:var(--green);color:#17210d}.trail-dot.wrong{background:#c85a4abf;color:#fff0ed}.puzzle-rating-filter{background:#24211d;background:var(--panel);border:1px solid #4a4338;border:1px solid var(--line);border-radius:8px;padding:8px 10px}.puzzle-rating-filter select{background:#2e2923;background:var(--panel-2);border:1px solid #ffffff1f;border-radius:6px;color:#f3efe6;color:var(--text)}.puzzles-grid{gap:14px;grid-template-columns:repeat(auto-fill,minmax(184px,1fr))}.puzzle-card-button{background:#24211d;background:var(--panel);border-color:#4a4338;border-color:var(--line);border-radius:8px;padding:12px}.puzzle-card-button:hover{background:#2e2923;background:var(--panel-2)}.puzzle-card-meta{color:#b9ad9f;color:var(--muted)}.puzzle-card-id,.puzzle-card-title{color:#f3efe6;color:var(--text)}.puzzle-error,.puzzle-loading{border-radius:8px}.puzzle-modal-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#000000c2}.puzzle-modal{background:#24211d;background:var(--panel);border-color:#4a4338;border-color:var(--line);border-radius:8px;width:min(980px,100%)}.puzzle-modal-meta{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}.puzzle-modal-meta span{background:#ffffff0f;border:1px solid #ffffff14;border-radius:999px;color:#b9ad9f;color:var(--muted);font-size:12px;padding:5px 8px}.puzzle-modal-meta .puzzle-side-to-move{background:#81b64c;background:var(--green);border-color:#81b64c9e;color:#17210d;font-weight:900}.puzzle-theme-list span{background:#5a91c826;border-color:#5a91c84d;border-radius:6px;color:#d8e7ff}.puzzle-status{grid-gap:8px 10px;align-items:center;background:#ffffff0f;border:1px solid #ffffff1a;border-radius:8px;color:#f3efe6;color:var(--text);display:grid;gap:8px 10px;grid-template-columns:auto minmax(0,1fr);min-height:54px;padding:12px}.puzzle-status strong{color:#d7a441;color:var(--gold);grid-column:2}.puzzle-status.success{background:#81b64c1f;border-color:#81b64c61}.puzzle-status.error{background:#c85a4a21;border-color:#c85a4a73}.puzzle-status.idle{color:#b9ad9f;color:var(--muted)}.puzzle-progress{background:#ffffff14;border-radius:999px;height:8px;overflow:hidden}.puzzle-progress span{background:#81b64c;background:var(--green);display:block;height:100%;transition:width .2s ease}.puzzle-tool-row{display:flex;flex-wrap:wrap;gap:8px}.puzzle-modal-actions button,.puzzle-tool-row button{padding:10px 12px}.puzzle-tool-row .analysis-mode-button{background:#5a91c821;border-color:#5a91c857;color:#d8e7ff}.analysis-mode-button{align-items:center;border-radius:8px;cursor:pointer;display:inline-flex;font-weight:800;gap:7px;justify-content:center}.finished-game-actions .analysis-mode-button:hover:not(:disabled),.puzzle-tool-row .analysis-mode-button:hover:not(:disabled){background:#5a91c833;border-color:#5a91c88a}.finished-game-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.finished-game-actions .analysis-mode-button{background:#5a91c821;border:1px solid #5a91c857;color:#d8e7ff;padding:7px 10px}.engine-lines{grid-gap:8px;background:#ffffff0f;border:1px solid #4a4338;border:1px solid var(--line);border-radius:8px;display:grid;gap:8px;padding:10px;width:100%}.bot-engine-lines{width:min(520px,calc(100% - 24px))}.engine-lines-title{align-items:center;color:#f3efe6;color:var(--text);display:flex;font-size:13px;font-weight:800;gap:7px;text-transform:uppercase}.engine-lines-title span{color:#b9ad9f;color:var(--muted);font-size:11px;font-weight:700;margin-left:auto}.engine-line,.engine-line-empty{grid-gap:8px;align-items:center;color:#b9ad9f;color:var(--muted);display:grid;font-size:13px;gap:8px;min-height:34px}.engine-line{grid-template-columns:34px minmax(0,1fr) auto}.engine-line-empty{padding:6px 4px}.engine-line-rank{color:#d7a441;color:var(--gold);font-weight:800}.engine-line-move{color:#f3efe6;color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.engine-line-score{font-feature-settings:"tnum";color:#81b64c;color:var(--green);font-variant-numeric:tabular-nums;font-weight:800}.engine-line-weight{background:#ffffff14;border-radius:999px;grid-column:2/4;height:5px;overflow:hidden}.engine-line-weight span{background:linear-gradient(90deg,#81b64c,#d7a441);background:linear-gradient(90deg,var(--green),var(--gold));border-radius:inherit;display:block;height:100%}.puzzle-modal-actions{justify-content:flex-end}.secondary-action{color:#b9ad9f;color:var(--muted)}.board-stack{grid-gap:10px;display:grid;gap:10px}.player-clock{align-items:center;background:#ffffff0f;border:1px solid #4a4338;border:1px solid var(--line);border-radius:8px;color:#b9ad9f;color:var(--muted);display:flex;gap:14px;justify-content:space-between;padding:10px 12px}.player-clock.active{background:#81b64c1f;border-color:#81b64c73;color:#f3efe6;color:var(--text)}.game-control-panel div,.player-clock div{grid-gap:2px;display:grid;gap:2px;min-width:0}.game-control-panel span,.player-clock span{color:#b9ad9f;color:var(--muted);font-size:12px}.game-control-panel strong,.player-clock strong{color:#f3efe6;color:var(--text);text-transform:capitalize}.player-clock time{font-feature-settings:"tnum";align-items:center;color:#f3efe6;color:var(--text);display:inline-flex;font-size:24px;font-variant-numeric:tabular-nums;font-weight:800;gap:7px}.game-control-panel{align-items:center;background:#24211d;background:var(--panel);border:1px solid #4a4338;border:1px solid var(--line);border-radius:8px;box-shadow:0 16px 40px #00000047;box-shadow:var(--shadow);display:flex;gap:12px;justify-content:space-between;padding:12px;width:100%}.inline-status-button,.resign-button{align-items:center;background:#c85a4a29;border:1px solid #c85a4a66;border-radius:8px;color:#ffd4ce;cursor:pointer;display:inline-flex;font-weight:700;gap:7px;justify-content:center}.resign-button{padding:9px 11px}.resign-button:disabled{cursor:not-allowed;opacity:.42}.disconnect-banner{align-items:center;background:#d9822b21;border-bottom:1px solid #d9822b40;border-top:1px solid #d9822b40;color:#ffe6b8;display:flex;gap:9px;margin:12px auto 0;max-width:1180px;padding:11px 24px}.own-disconnect-banner{background:#5a91c821;border-bottom-color:#5a91c840;border-top-color:#5a91c840;color:#d8e7ff}.resign-modal .modal-buttons button{align-items:center;display:inline-flex;gap:8px;justify-content:center}.inline-status-button{font-size:13px;grid-column:2;justify-self:start;padding:7px 10px}@media (max-width:900px){.header{grid-template-columns:1fr;justify-items:stretch}.header-nav,.header-user-info{justify-content:center}.chess-board-layout,.home-hero,.mode-grid{grid-template-columns:1fr}.home-status-panel{min-height:auto}.game-topbar,.puzzles-toolbar,.section-heading{align-items:flex-start;flex-direction:column}.game-state-strip,.puzzle-toolbar-actions{justify-content:flex-start}}@media (max-width:560px){.bot-game-content,.chess-board-layout,.game-topbar,.home-content,.puzzles-content{padding-left:12px;padding-right:12px}.header{padding:10px 12px}.header-nav{display:grid;grid-template-columns:repeat(3,1fr);width:100%}.header-nav a{justify-content:center;padding:9px 7px}.header-user-info{justify-content:space-between}.mode-card{min-height:136px}.player-card{grid-template-columns:38px minmax(0,1fr)}.challenge-button,.player-state{grid-column:2;justify-self:start}.puzzles-grid{grid-template-columns:repeat(auto-fill,minmax(156px,1fr))}.puzzle-modal{padding:12px}.player-clock time{font-size:20px}}#root,body,html{overflow-x:hidden}body.board-viewport-lock{width:100%}body.board-viewport-lock,body.board-viewport-lock #root{height:100dvh;overflow:hidden}.bot-game-container,.chess-board-container{display:flex;flex-direction:column;height:100dvh;min-height:100dvh;overflow-x:hidden;overflow:hidden}.bot-game-container>.header,.chess-board-container>.header{flex:0 0 auto}.game-topbar{flex:0 0 auto}.chess-board-layout,.game-topbar{padding-top:12px;width:min(1180px,100%)}.chess-board-layout{align-items:stretch;flex:1 1 auto;gap:18px;grid-template-columns:minmax(0,max-content) minmax(300px,360px);min-height:0;overflow:hidden;padding-bottom:18px}.chess-board-center{align-items:center;min-width:0}.chess-board-right{display:flex;flex-direction:column;gap:10px;min-height:0}.board-stack{align-content:start;gap:8px;max-width:100%;width:fit-content}.board-with-eval{align-items:stretch;display:flex;gap:10px;justify-content:center;max-width:100%;position:relative}.bot-result-banner{box-shadow:0 16px 40px #00000047;box-shadow:var(--shadow);left:50%;margin:0;padding:10px 14px;position:absolute;text-align:center;top:12px;transform:translateX(-50%);width:min(360px,calc(100% - 28px));z-index:4}.eval-bar{grid-gap:7px;font-feature-settings:"tnum";color:#b9ad9f;color:var(--muted);display:grid;flex:0 0 34px;font-size:12px;font-variant-numeric:tabular-nums;font-weight:800;gap:7px;grid-template-rows:minmax(0,1fr) auto;min-width:34px;pointer-events:none;text-align:center;width:34px}.eval-bar-track{background:#111;border:1px solid #ffffff24;border-radius:8px;box-shadow:inset 0 0 0 1px #0003;display:flex;flex-direction:column;min-height:0;overflow:hidden}.eval-bar-black{background:#141414}.eval-bar-black,.eval-bar-white{flex:0 0 auto;transition:height .18s ease}.eval-bar-white{background:#f2ead2}.eval-bar.disabled{opacity:.55}.eval-bar.disabled .eval-bar-white{background:#f2ead25c;height:50%!important}.eval-bar.disabled .eval-bar-black{background:#14141499;height:50%!important}.eval-bar-placeholder{visibility:hidden}.board-frame{--frame-pad:8px;background:linear-gradient(180deg,#ffffff1c,hsla(0,0%,100%,.035)),#171a16;border:1px solid #ffffff21;border-radius:10px;box-shadow:0 22px 42px #00000057,inset 0 1px 0 #ffffff14;box-sizing:initial;padding:var(--frame-pad);position:relative;width:var(--board-size)}.board-frame:after{border-radius:6px;box-shadow:inset 0 0 0 1px #00000047,inset 0 0 24px #0000001f;content:"";inset:var(--frame-pad);pointer-events:none;position:absolute}.board-surface{background:#d6c494;border-radius:6px;height:var(--board-size);overflow:hidden;position:relative;width:var(--board-size)}.board-surface .cg-wrap{border-radius:6px;box-shadow:none}.engine-lines-overlay{height:100%;inset:0;pointer-events:none;position:absolute;width:100%;z-index:3}.engine-line-arrow{filter:drop-shadow(0 1px 1px rgba(0,0,0,.28))}.board-frame cg-board{background-color:#d6c494!important;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2387a36d' d='M0 0h8v8H0z'/%3E%3Cpath fill='%23d6c494' d='M0 0h1v1H0zm2 0h1v1H2zm2 0h1v1H4zm2 0h1v1H6zM1 1h1v1H1zm2 0h1v1H3zm2 0h1v1H5zm2 0h1v1H7zM0 2h1v1H0zm2 0h1v1H2zm2 0h1v1H4zm2 0h1v1H6zM1 3h1v1H1zm2 0h1v1H3zm2 0h1v1H5zm2 0h1v1H7zM0 4h1v1H0zm2 0h1v1H2zm2 0h1v1H4zm2 0h1v1H6zM1 5h1v1H1zm2 0h1v1H3zm2 0h1v1H5zm2 0h1v1H7zM0 6h1v1H0zm2 0h1v1H2zm2 0h1v1H4zm2 0h1v1H6zM1 7h1v1H1zm2 0h1v1H3zm2 0h1v1H5zm2 0h1v1H7z'/%3E%3C/svg%3E")!important;background-position:0 0!important;background-size:100% 100%!important}.board-frame piece{filter:drop-shadow(0 3px 2px rgba(0,0,0,.34))}.board-frame cg-board square.last-move{background-color:#f6c4567a}.board-frame cg-board square.selected{background-color:#5e8d4785}.board-frame cg-board square.move-dest{background:radial-gradient(#18402494 18%,#18402433 19%,#0000 20%)}.board-frame cg-board square.oc.move-dest{background:radial-gradient(#0000 0,#0000 78%,#1840246b 79%)}.player-clock{background:#141814d1;box-shadow:inset 0 1px 0 #ffffff0d;min-height:44px;padding:8px 10px}.player-clock.active{background:#3a522b5c;border-color:#81b64c9e}.player-clock time{font-size:clamp(19px,2.2vw,24px);line-height:1}.game-control-panel{flex:0 0 auto}.move-history{flex:1 1 auto;max-height:none;min-height:0;overflow:auto}.move-history-controls{flex:0 0 auto}.bot-game-content{align-items:center;display:flex;flex:1 1 auto;flex-direction:column;gap:8px;height:auto;min-height:0;overflow:hidden;padding-bottom:18px;padding-top:10px}.bot-game-heading{margin-bottom:0}.bot-game-title{line-height:1}.bot-board-frame{margin-top:4px}.bot-game-buttons{gap:8px;margin-top:0}.bot-game-buttons .toggle-button{min-width:132px}.bot-game-buttons .bot-resign-button{min-width:112px}.bot-game-buttons .takeback-button{background:#5a91c821;border-color:#5a91c861;color:#d8e7ff}.bot-game-buttons .takeback-button:hover:not(:disabled){background:#5a91c833;border-color:#5a91c894}.bot-game-buttons .takeback-button:disabled{cursor:not-allowed;opacity:.42;transform:none}.bot-analysis-button{background:#5a91c824;border-color:#5a91c861;color:#d8e7ff}.bot-analysis-button:hover:not(:disabled){background:#5a91c838;border-color:#5a91c899}.bot-game-buttons .bot-board-eval-toggle{background:#ffffff12;border-color:#ffffff24;min-height:42px;min-width:146px;padding:8px 12px}.bot-game-buttons .bot-board-eval-toggle:hover{background:#81b64c1f;border-color:#81b64c8c}.bot-game-buttons .bot-board-eval-toggle .eval-toggle-label{color:#b9ad9f;color:var(--muted)}.bot-game-buttons .bot-analysis-depth,.finished-game-actions .game-analysis-depth,.puzzle-tool-row .puzzle-analysis-depth{flex:0 1 210px}.bot-game-buttons button:focus-visible,.inline-status-button:focus-visible,.resign-button:focus-visible{outline:2px solid #f2c14ea6;outline-offset:2px}.compact-control{align-items:center;display:grid;grid-template-columns:auto minmax(110px,1fr)}.toggle-button{align-items:center;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:8px;color:#b9ad9f;color:var(--muted);cursor:pointer;display:inline-flex;font-weight:800;gap:7px;justify-content:center;min-height:38px;padding:8px 11px}.toggle-button.selected{background:#81b64c;background:var(--green);border-color:#81b64cb3;color:#11100e}.puzzle-modal,.puzzle-modal-overlay{overflow:hidden}.puzzle-modal{align-items:stretch;grid-template-columns:max-content minmax(280px,1fr);max-height:calc(100dvh - 24px);width:min(1040px,calc(100vw - 24px))}.puzzle-modal-panel{min-height:0;overflow:auto}.puzzle-modal-board{align-items:center}.puzzles-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}.puzzle-card-button{align-items:center;gap:12px;overflow:hidden}.puzzle-mini-frame{--preview-square:21px;background:linear-gradient(180deg,hsla(0,0%,100%,.095),hsla(0,0%,100%,.025)),#181b16;border:1px solid #ffffff1c;border-radius:8px;box-shadow:0 12px 24px #00000038,inset 0 1px 0 #ffffff12;flex:0 0 auto;margin:0 auto 2px;padding:6px}.puzzle-mini-board-static{border-radius:6px;contain:strict;display:grid;grid-template-columns:repeat(8,var(--preview-square));grid-template-rows:repeat(8,var(--preview-square));height:calc(var(--preview-square)*8);overflow:hidden;width:calc(var(--preview-square)*8)}.mini-square{align-items:center;display:inline-flex;font-family:Arial Unicode MS,DejaVu Sans,Segoe UI Symbol,sans-serif;font-size:17px;height:var(--preview-square);justify-content:center;line-height:1;text-shadow:0 1px 1px #00000061;width:var(--preview-square)}.mini-square.light{background:#d6c494}.mini-square.dark{background:#87a36d}.mini-square.white{color:#f8f1df}.mini-square.black{color:#24201a}.puzzle-mini-board-empty{background:#ffffff0d;border:1px solid #4a4338;border:1px solid var(--line);border-radius:8px;height:180px;width:180px}.puzzle-card-meta{width:100%}.refresh-button.is-spinning svg{animation:refresh-icon-spin .72s linear infinite}.home-hero{align-items:center;grid-template-columns:minmax(0,1fr) 180px 220px}.home-chess-visual{aspect-ratio:1;border-radius:10px;justify-self:center;perspective:700px;position:relative;width:178px}.hero-board{animation:hero-board-drift 7s ease-in-out infinite;border:1px solid #ffffff21;border-radius:8px;box-shadow:0 18px 34px #00000047,inset 0 1px 0 #ffffff1f;display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);inset:12px;overflow:hidden;position:absolute;transform:rotateX(10deg) rotate(-3deg)}.hero-board span.light{background:#d6c494}.hero-board span.dark{background:#87a36d}.hero-piece{animation:hero-piece-float 4.8s ease-in-out infinite;background:#141814db;border:1px solid #ffffff26;border-radius:999px;box-shadow:0 16px 28px #00000047;color:#f8f1df;display:grid;font-family:Arial Unicode MS,DejaVu Sans,Segoe UI Symbol,sans-serif;font-size:31px;height:46px;line-height:1;place-items:center;position:absolute;width:46px}.hero-knight{left:10px;top:7px}.hero-bishop{animation-delay:-1.4s;right:8px;top:58px}.hero-pawn{animation-delay:-2.5s;background:#f2ead2e6;bottom:4px;color:#24201a;left:68px}.eval-toggle-row{cursor:pointer;display:inline-flex;gap:9px;justify-content:center;position:relative;-webkit-user-select:none;user-select:none}.analysis-depth-control,.eval-toggle-row{align-items:center;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:8px;color:#f3efe6;color:var(--text);min-height:38px;padding:8px 10px}.analysis-depth-control{display:inline-grid;gap:8px;grid-template-columns:auto minmax(86px,118px) 26px}.analysis-depth-control input[type=range]{accent-color:#d7a441;accent-color:var(--gold);cursor:pointer;margin:0;width:100%}.analysis-depth-control input[type=range]:disabled{cursor:not-allowed;opacity:.55}.analysis-depth-control strong{font-feature-settings:"tnum";color:#d7a441;color:var(--gold);font-size:13px;font-variant-numeric:tabular-nums;font-weight:900;min-width:24px;text-align:right}.engine-guard-status{align-items:center;background:#f2c14e1a;border:1px solid #f2c14e42;border-radius:8px;color:#d7a441;color:var(--gold);display:inline-flex;font-size:12px;font-weight:800;min-height:38px;padding:8px 10px}.control-label,.eval-toggle-label{color:#b9ad9f;color:var(--muted);font-size:12px;font-weight:800;margin-left:0;text-transform:uppercase}.eval-switch-input{height:1px;opacity:0;pointer-events:none;position:absolute;width:1px}.eval-switch{background:#ffffff24;box-shadow:inset 0 0 0 1px #ffffff1f;display:inline-block;flex:0 0 42px;height:24px;position:relative;transition:background .18s ease,box-shadow .18s ease;width:42px}.eval-switch,.eval-switch span{border-radius:999px;margin-left:0}.eval-switch span{background:#f2ead2;box-shadow:0 2px 6px #00000052;height:18px;left:3px;position:absolute;top:3px;transition:transform .18s ease,background .18s ease;width:18px}.eval-switch-input:checked+.eval-switch{background:#81b64c;background:var(--green);box-shadow:inset 0 0 0 1px #81b64c80}.eval-switch-input:checked+.eval-switch span{background:#11100e;transform:translateX(18px)}.eval-toggle-row:focus-within{outline:2px solid #f2c14ea6;outline-offset:2px}.eval-toggle-value{font-feature-settings:"tnum";color:#f3efe6;color:var(--text);font-size:13px;font-variant-numeric:tabular-nums;font-weight:800;margin-left:0;min-width:40px;text-align:left}.compact-control .eval-toggle-row{justify-self:start}.bot-controls .eval-toggle-row span{margin-left:0}.bot-controls .eval-toggle-row .eval-toggle-label{color:#b9ad9f;color:var(--muted);font-size:12px}.bot-controls .eval-toggle-row .eval-switch{margin-left:0}.bot-controls .eval-toggle-row .eval-switch span{color:#0000;font-size:0}.bot-game-buttons .board-eval-toggle{min-width:0}.puzzle-tool-row .puzzle-eval-toggle{padding:7px 10px}@media (max-width:820px){.login-shell{grid-template-columns:1fr;max-width:500px}.login-visual{min-height:250px;padding:18px}.login-board-stage{width:min(230px,78vw)}.login-piece{font-size:31px;height:50px;width:50px}.login-title{font-size:2.4rem}.bot-setup-panel{grid-template-columns:1fr;width:min(420px,100%)}.bot-setup-panel .bot-controls{min-height:auto}}@media (max-width:520px){.login-page{align-items:flex-start;min-height:100dvh;padding:14px}.login-shell{gap:12px}.login-visual{gap:10px;min-height:210px;padding:14px}.login-visual-caption{display:none}.login-board-stage{width:min(180px,68vw)}.login-page .login-card{padding:22px 18px}.login-title{font-size:2.05rem}.bot-setup-panel .bot-controls{padding:12px}.bot-setup-eval-toggle{justify-content:center}}.bot-result-banner,.game-result-banner{--result-x:0;animation:result-banner-in .5s cubic-bezier(.2,.9,.2,1.18);overflow:hidden;position:relative}.bot-result-banner{--result-x:-50%;transform:translateX(var(--result-x))}.result-win{background:#81b64c29;border-color:#81b64c61;color:#e9ffd2}.result-loss{animation:result-banner-in .5s cubic-bezier(.2,.9,.2,1.18),result-loss-shake .36s ease .46s;background:#c85a4a29;border-color:#c85a4a61;color:#ffd4ce}.result-draw{background:#5a91c826;border-color:#5a91c852;color:#d8e7ff}.result-win:after{animation:result-sheen 1.1s ease .15s;background:linear-gradient(110deg,#0000 0 35%,#ffffff38 48%,#0000 62% 100%);content:"";inset:0;position:absolute;transform:translateX(-110%)}.result-board-win{animation:board-win-pulse .85s ease}.result-board-loss{animation:board-loss-shake .55s ease}.result-board-draw{animation:board-draw-pulse .7s ease}.result-celebration{animation:celebration-shell 3.4s ease forwards;display:grid;inset:0;overflow:hidden;place-items:center;pointer-events:none;position:fixed;z-index:85}.result-celebration:before{animation:celebration-wash 2.2s ease forwards;content:"";inset:0;opacity:0;position:absolute}.result-celebration-win:before{background:radial-gradient(circle at 50% 38%,#81b64c4d,#0000 28%),radial-gradient(circle at 35% 55%,#f2c14e2e,#0000 24%)}.result-celebration-loss:before{background:radial-gradient(circle at 50% 38%,#c85a4a42,#0000 30%),radial-gradient(circle at 62% 58%,#502c2b38,#0000 28%)}.result-celebration-draw:before{background:radial-gradient(circle at 50% 38%,#5a91c838,#0000 30%),radial-gradient(circle at 38% 56%,#f2ead21a,#0000 24%)}.celebration-card{grid-gap:9px;animation:celebration-card-in 2.8s cubic-bezier(.18,.95,.28,1) forwards;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:linear-gradient(180deg,#ffffff21,#ffffff0d),#14120fe0;border:1px solid #ffffff26;border-radius:14px;box-shadow:0 28px 70px #0000006b,inset 0 1px 0 #ffffff1a;display:grid;gap:9px;min-height:210px;padding:26px 24px;place-items:center;pointer-events:auto;position:relative;text-align:center;width:min(390px,calc(100vw - 34px));z-index:2}.celebration-analyze-button{align-items:center;background:#81b64c29;border:1px solid #81b64c73;border-radius:8px;color:#e9ffd2;cursor:pointer;display:inline-flex;font-weight:800;gap:8px;justify-content:center;margin-top:5px;min-height:38px;padding:8px 12px}.celebration-analyze-button:hover{background:#81b64c3d;border-color:#81b64ca6}.result-celebration-loss .celebration-card{animation:celebration-card-in 2.8s cubic-bezier(.18,.95,.28,1) forwards,celebration-loss-jolt .42s ease .25s}.celebration-icon{animation:celebration-icon-pop 1.2s ease both;background:#ffffff14;border:1px solid #ffffff24;border-radius:999px;display:grid;height:68px;place-items:center;width:68px}.result-celebration-win .celebration-icon{background:#81b64c;background:var(--green);box-shadow:0 0 34px #81b64c6b;color:#11100e}.result-celebration-loss .celebration-icon{background:#c85a4ad9;box-shadow:0 0 34px #c85a4a52;color:#fff0ed}.result-celebration-draw .celebration-icon{background:#5a91c857;box-shadow:0 0 34px #5a91c847;color:#d8e7ff}.celebration-kicker{align-items:center;color:#d7a441;color:var(--gold);display:inline-flex;font-size:12px;font-weight:800;gap:6px;justify-content:center;text-transform:uppercase}.celebration-card strong{color:#f3efe6;color:var(--text);font-size:clamp(2.3rem,7vw,4.4rem);line-height:.92}.celebration-card>span:last-child{color:#b9ad9f;color:var(--muted);font-size:15px;font-weight:700}.celebration-rings{display:grid;inset:0;place-items:center;position:absolute}.celebration-rings span{animation:celebration-ring 1.45s ease-out forwards;border:1px solid #ffffff2e;border-radius:999px;height:170px;opacity:0;position:absolute;width:170px}.celebration-rings span:nth-child(2){animation-delay:.18s}.celebration-rings span:nth-child(3){animation-delay:.36s}.celebration-pieces{left:50%;position:absolute;top:47%;z-index:1}.celebration-pieces span{border-radius:3px;height:var(--burst-size);opacity:0;position:absolute;transform:translate(-50%,-50%) rotate(var(--burst-rotate));width:var(--burst-size)}.result-celebration-win .celebration-pieces span{animation:celebration-confetti 1.8s ease-out var(--burst-delay) forwards;background:hsl(var(--burst-hue) 76% 56%)}.result-celebration-loss .celebration-pieces span{animation:celebration-shards 1.25s ease-in var(--burst-delay) forwards;background:linear-gradient(135deg,#ff7768,#5f2423)}.result-celebration-draw .celebration-pieces span{animation:celebration-sparks 1.45s ease-out var(--burst-delay) forwards;background:linear-gradient(135deg,#d8e7ff,#5a91c8)}.puzzle-status.success{animation:status-win-pop .32s ease}.puzzle-status.error{animation:status-loss-pop .28s ease}.trail-dot:last-child{animation:trail-pop .24s ease}@keyframes login-pattern-drift{to{background-position:36px 36px,36px 54px,54px 18px,18px 36px}}@keyframes login-board-drift{0%,to{transform:rotateX(11deg) rotate(-4deg) translateY(0)}50%{transform:rotateX(14deg) rotate(2deg) translateY(-7px)}}@keyframes login-piece-float{0%,to{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-10px) rotate(4deg)}}@keyframes login-square-pulse{0%,to{box-shadow:inset 0 0 0 #f2c14e00}45%{box-shadow:inset 0 0 0 999px #f2c14e47}}@keyframes login-card-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes refresh-icon-spin{to{transform:rotate(1turn)}}@keyframes hero-board-drift{0%,to{transform:rotateX(10deg) rotate(-3deg) translateY(0)}50%{transform:rotateX(13deg) rotate(2deg) translateY(-5px)}}@keyframes hero-piece-float{0%,to{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-9px) rotate(4deg)}}@keyframes result-banner-in{0%{opacity:0;transform:translateX(var(--result-x)) translateY(-10px) scale(.96)}70%{opacity:1;transform:translateX(var(--result-x)) translateY(2px) scale(1.02)}to{opacity:1;transform:translateX(var(--result-x)) translateY(0) scale(1)}}@keyframes result-loss-shake{0%,to{transform:translateX(var(--result-x))}25%{transform:translateX(var(--result-x)) translateX(-5px)}55%{transform:translateX(var(--result-x)) translateX(4px)}}@keyframes result-sheen{to{transform:translateX(110%)}}@keyframes board-win-pulse{0%,to{box-shadow:0 22px 42px #00000057,inset 0 1px 0 #ffffff14}45%{box-shadow:0 0 0 4px #81b64c52,0 24px 48px #0000005c,inset 0 1px 0 #ffffff1a}}@keyframes board-loss-shake{0%,to{transform:translateX(0)}25%{transform:translateX(-5px)}55%{transform:translateX(4px)}}@keyframes board-draw-pulse{50%{box-shadow:0 0 0 4px #5a91c83d,0 22px 42px #00000057,inset 0 1px 0 #ffffff14}}@keyframes status-win-pop{50%{transform:translateY(-1px) scale(1.015)}}@keyframes status-loss-pop{25%{transform:translateX(-3px)}65%{transform:translateX(3px)}}@keyframes trail-pop{0%{opacity:.35;transform:scale(.72)}75%{transform:scale(1.08)}to{opacity:1;transform:scale(1)}}@keyframes celebration-shell{0%,82%{opacity:1}to{opacity:0}}@keyframes celebration-wash{0%{opacity:0}20%,74%{opacity:1}to{opacity:0}}@keyframes celebration-card-in{0%{opacity:0;transform:translateY(18px) scale(.88)}18%{opacity:1;transform:translateY(-5px) scale(1.04)}28%,76%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-12px) scale(.98)}}@keyframes celebration-icon-pop{0%{transform:scale(.62) rotate(-10deg)}55%{transform:scale(1.16) rotate(5deg)}to{transform:scale(1) rotate(0deg)}}@keyframes celebration-loss-jolt{0%,to{transform:translateX(0)}22%{transform:translateX(-10px) rotate(-1deg)}52%{transform:translateX(8px) rotate(1deg)}76%{transform:translateX(-4px)}}@keyframes celebration-ring{0%{opacity:.65;transform:scale(.4)}to{opacity:0;transform:scale(2.35)}}@keyframes celebration-confetti{0%{opacity:0;transform:translate(-50%,-50%) rotate(var(--burst-rotate)) scale(.6)}12%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--burst-x)),calc(-50% - 185px + var(--burst-drift))) rotate(calc(var(--burst-rotate) + 520deg)) scale(1)}}@keyframes celebration-shards{0%{opacity:0;transform:translate(-50%,-50%) rotate(var(--burst-rotate)) scale(.8)}18%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--burst-x)),calc(-50% + 170px + var(--burst-drift))) rotate(calc(var(--burst-rotate) - 1turn)) scale(.72)}}@keyframes celebration-sparks{0%{opacity:0;transform:translate(-50%,-50%) rotate(var(--burst-rotate)) scale(.6)}20%,58%{opacity:.9}to{opacity:0;transform:translate(calc(-50% + var(--burst-x)*.72),calc(-50% - 95px + var(--burst-drift)*.4)) rotate(calc(var(--burst-rotate) + 180deg)) scale(.9)}}@media (max-width:900px){.home-hero{align-items:start;grid-template-columns:1fr}.home-chess-visual{justify-self:start;width:162px}.bot-game-container,.chess-board-container{height:100dvh;min-height:0;overflow:hidden}.chess-board-layout{grid-template-columns:1fr;justify-items:center;overflow:hidden}.chess-board-right{width:min(100%,540px)}.puzzle-modal{grid-template-columns:1fr;justify-items:center;overflow:auto}.puzzle-modal-panel{overflow:visible;width:100%}}@media (max-width:560px){.puzzles-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}.puzzle-modal-overlay{padding:12px}.puzzle-modal-board{overflow:visible;width:100%}.puzzle-board-with-eval{align-items:center;gap:0;justify-content:center;width:100%}.puzzle-board-with-eval .eval-bar{background:#11100eb8;border-radius:8px;bottom:14px;box-shadow:0 8px 20px #00000047;height:auto;left:14px;padding:3px;position:absolute;top:14px;width:28px;z-index:5}.puzzle-board-with-eval .eval-bar-track{border-radius:6px}.puzzle-board-with-eval .eval-bar span{font-size:10px}.board-frame{--frame-pad:6px;border-radius:8px}.board-frame:after,.board-surface,.board-surface .cg-wrap{border-radius:5px}.player-clock{min-height:40px}}