.cg-wrap{box-sizing:content-box;position:relative;display:block}cg-container{position:absolute;width:100%;height:100%;display:block;top:0}cg-board{position:absolute;top:0;left:0;width:100%;height:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:0;background-size:cover}.cg-wrap.manipulable cg-board{cursor:pointer}cg-board square{position:absolute;top:0;left:0;width:12.5%;height:12.5%;pointer-events:none}cg-board square.move-dest{pointer-events:auto}cg-board square.last-move{will-change:transform}.cg-wrap piece{position:absolute;top:0;left:0;width:12.5%;height:12.5%;background-size:cover;z-index:2;will-change:transform;pointer-events:none}cg-board piece.dragging{cursor:move;z-index:11!important}piece.anim{z-index:8}piece.fading{z-index:1;opacity:.5}.cg-wrap piece.ghost{opacity:.3}.cg-wrap piece svg{overflow:hidden;position:relative;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:2;opacity:.6}.cg-wrap cg-auto-pieces,.cg-wrap .cg-shapes,.cg-wrap .cg-custom-svgs{overflow:visible;position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.cg-wrap cg-auto-pieces{z-index:2}.cg-wrap cg-auto-pieces piece{opacity:.3}.cg-wrap .cg-shapes{overflow:hidden;opacity:.6;z-index:2}.cg-wrap .cg-custom-svgs{z-index:9}.cg-wrap .cg-custom-svgs svg{overflow:visible}.cg-wrap coords{position:absolute;display:flex;pointer-events:none;opacity:.8;font-family:sans-serif;font-size:9px}.cg-wrap coords.ranks{left:4px;top:-20px;flex-flow:column-reverse;height:100%;width:12px}.cg-wrap coords.ranks.black{flex-flow:column}.cg-wrap coords.ranks.left{left:-15px;align-items:flex-end}.cg-wrap coords.files{bottom:-4px;left:24px;flex-flow:row;width:100%;height:16px;text-transform:uppercase;text-align:center}.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-wrap coords.squares{bottom:0;left:0;text-transform:uppercase;text-align:right;flex-flow:column-reverse;height:100%;width:12.5%}.cg-wrap coords.squares.black{flex-flow:column}.cg-wrap coords.squares.left{text-align:left}.cg-wrap coords.squares coord{padding:6% 4%}.cg-wrap coords.squares.rank2{transform:translate(100%)}.cg-wrap coords.squares.rank3{transform:translate(200%)}.cg-wrap coords.squares.rank4{transform:translate(300%)}.cg-wrap coords.squares.rank5{transform:translate(400%)}.cg-wrap coords.squares.rank6{transform:translate(500%)}.cg-wrap coords.squares.rank7{transform:translate(600%)}.cg-wrap coords.squares.rank8{transform:translate(700%)}.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+PGcgZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik05IDM5aDI3di0zSDl2M3ptMy0zdi00aDIxdjRIMTJ6bS0xLTIyVjloNHYyaDVWOWg1djJoNVY5aDR2NSIgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiLz48cGF0aCBkPSJNMzQgMTRsLTMgM0gxNGwtMy0zIi8+PHBhdGggZD0iTTMxIDE3djEyLjVIMTRWMTciIHN0cm9rZS1saW5lY2FwPSJidXR0IiBzdHJva2UtbGluZWpvaW49Im1pdGVyIi8+PHBhdGggZD0iTTMxIDI5LjVsMS41IDIuNWgtMjBsMS41LTIuNSIvPjxwYXRoIGQ9Ik0xMSAxNGgyMyIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciIvPjwvZz48L3N2Zz4=)}.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+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0yMiAxMGMxMC41IDEgMTYuNSA4IDE2IDI5SDE1YzAtOSAxMC02LjUgOC0yMSIgZmlsbD0iIzAwMCIvPjxwYXRoIGQ9Ik0yNCAxOGMuMzggMi45MS01LjU1IDcuMzctOCA5LTMgMi0yLjgyIDQuMzQtNSA0LTEuMDQyLS45NCAxLjQxLTMuMDQgMC0zLTEgMCAuMTkgMS4yMy0xIDItMSAwLTQuMDAzIDEtNC00IDAtMiA2LTEyIDYtMTJzMS44OS0xLjkgMi0zLjVjLS43My0uOTk0LS41LTItLjUtMyAxLTEgMyAyLjUgMyAyLjVoMnMuNzgtMS45OTIgMi41LTNjMSAwIDEgMyAxIDMiIGZpbGw9IiMwMDAiLz48cGF0aCBkPSJNOS41IDI1LjVhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDEgMSAxIDB6bTUuNDMzLTkuNzVhLjUgMS41IDMwIDEgMS0uODY2LS41LjUgMS41IDMwIDEgMSAuODY2LjV6IiBmaWxsPSIjZWNlY2VjIiBzdHJva2U9IiNlY2VjZWMiLz48cGF0aCBkPSJNMjQuNTUgMTAuNGwtLjQ1IDEuNDUuNS4xNWMzLjE1IDEgNS42NSAyLjQ5IDcuOSA2Ljc1UzM1Ljc1IDI5LjA2IDM1LjI1IDM5bC0uMDUuNWgyLjI1bC4wNS0uNWMuNS0xMC4wNi0uODgtMTYuODUtMy4yNS0yMS4zNC0yLjM3LTQuNDktNS43OS02LjY0LTkuMTktNy4xNmwtLjUxLS4xeiIgZmlsbD0iI2VjZWNlYyIgc3Ryb2tlPSJub25lIi8+PC9nPjwvc3ZnPg==)}.cg-wrap piece.rook.black{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik05IDM5aDI3di0zSDl2M3ptMy41LTdsMS41LTIuNWgxN2wxLjUgMi41aC0yMHptLS41IDR2LTRoMjF2NEgxMnoiIHN0cm9rZS1saW5lY2FwPSJidXR0Ii8+PHBhdGggZD0iTTE0IDI5LjV2LTEzaDE3djEzSDE0eiIgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiLz48cGF0aCBkPSJNMTQgMTYuNUwxMSAxNGgyM2wtMyAyLjVIMTR6TTExIDE0VjloNHYyaDVWOWg1djJoNVY5aDR2NUgxMXoiIHN0cm9rZS1saW5lY2FwPSJidXR0Ii8+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=)}html:has(body.workspace-open){overflow:hidden;overscroll-behavior:none}body.workspace-open{height:100dvh;position:fixed;inset:0;overflow:hidden;overscroll-behavior:none}.single-workspace{touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.session-board{touch-action:none}.single-workspace.training-workspace{animation:session-in 217ms cubic-bezier(.06,0,0,1) both}@keyframes session-in{0%{opacity:0}}.cg-wrap piece.dragging{width:16.25%;height:16.25%;margin:-1.875%;filter:drop-shadow(0 4px 4px rgba(63,36,18,.35))}.cg-wrap piece.wrong-move{animation:wrong-move 1s both}@keyframes wrong-move{0%{translate:-12% 0}12%{translate:9% 0}24%{translate:-6% 0}38%{translate:3.5% 0}54%{translate:-1.5% 0}72%{translate:.5% 0}to{translate:0 0}}.board-intro piece{background-repeat:no-repeat;background-position:50% 100%;animation:piece-pop 833ms both}@keyframes piece-pop{0%{background-size:0 0;translate:0 0}22%{background-size:5% 5%;translate:0 -2%;animation-timing-function:ease-in-out}40%{background-size:95% 112%;translate:0 -16%}52%{background-size:100% 100%;translate:0 -22%;animation-timing-function:ease-in}78%{background-size:112% 84%;translate:0 0}88%,to{background-size:100% 100%;translate:0 0}}.cg-wrap square.hint{background-color:#ffd640cc;box-shadow:inset 0 0 0 3px var(--ink),inset 0 0 0 7px #ffd640;animation:hint-pulse 1s ease-in-out infinite alternate}@keyframes hint-pulse{to{background-color:#ffd64059}}@media(prefers-reduced-motion:reduce){.single-workspace.training-workspace,.board-intro piece,.cg-wrap piece.wrong-move,.cg-wrap square.hint,.explanation-text.text-in{animation:none}}.workspace-open .topbar,.workspace-open .site-footer{display:none}.workspace-open .app-shell{min-height:0;height:100dvh;padding-bottom:0}.workspace-open .main-content{width:100%;margin:0;padding:0}.single-workspace.training-workspace{--board-size: min(560px, calc(100vw - 24px) , calc(100dvh - 350px) );width:min(680px,calc(100% - 24px));height:100dvh;margin:0 auto;display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:6px;padding:8px 0;color:var(--ink)}.single-workspace .icon-button{min-width:0}.session-header{height:36px;flex:0 0 36px;display:flex;gap:8px;align-items:center;font-size:15px;font-weight:900}.session-count{margin-left:auto;color:var(--muted);font-size:12px;font-weight:700}.close-session{flex:0 0 36px;height:36px;font-size:26px;border:0;background:transparent;z-index:10}.session-overview{height:38px;flex:0 0 38px}.evaluation-label{font-size:13px;font-weight:700;height:17px;color:var(--muted)}.evaluation-meter{height:3px;background:var(--ink);border-radius:2px;overflow:hidden}.evaluation-meter span{display:block;height:100%;background:var(--cream)}.session-progress{position:relative;height:18px;margin:0 7px}.session-progress [role=progressbar]{position:absolute;top:6px;height:6px;width:100%;background:var(--cream);border-radius:3px}.session-progress [role=progressbar] span{display:block;height:100%;border-radius:inherit;background:var(--olive)}.moment-dot{position:absolute;top:2px;width:14px;height:14px;padding:0;border:3px solid transparent;border-radius:50%;transform:translate(-50%)}.dot-good{background:var(--good)}.dot-inaccuracy{background:var(--inaccuracy)}.dot-mistake{background:var(--mistake)}.dot-blunder{background:var(--blunder)}.session-explanation{--mood: var(--olive);flex:1 0 116px;min-height:0;max-height:204px;display:flex;align-items:flex-start;gap:6px}.session-explanation.moment-good{--mood: var(--good)}.session-explanation.moment-inaccuracy{--mood: var(--inaccuracy)}.session-explanation.moment-mistake{--mood: var(--mistake)}.session-explanation.moment-blunder{--mood: var(--blunder)}.coach-avatar{display:block;width:68px;height:68px}.session-explanation .speech{--tail: 24px;flex:1;min-width:0;align-self:stretch;display:flex;flex-direction:column;padding:6px 10px 0 14px;border-radius:16px;box-shadow:0 3px 0 var(--shelf)}.explanation-label{display:inline-block;align-self:flex-start;max-width:100%;height:16px;padding:0 8px;border-radius:999px;background:var(--mood);font-size:11px;line-height:16px;font-weight:900;letter-spacing:.02em;color:var(--card);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:top}.moment-inaccuracy .explanation-label{color:var(--ink)}.explanation-text.prompt{flex:1;min-height:0;margin:0;max-width:none;font-size:16px;line-height:22px;font-weight:600;color:var(--ink);overflow-wrap:anywhere;white-space:pre-wrap}.explanation-text.text-in{animation:text-in .26s cubic-bezier(.06,0,0,1) both}@keyframes text-in{0%{opacity:0;translate:0 4px}}.note-move{display:inline;margin:0 1px;padding:0 4px;border:0;border-radius:6px;font:inherit;font-weight:800;line-height:inherit;color:var(--ink);background:var(--cream);box-shadow:inset 0 0 0 2px var(--edge);cursor:pointer;white-space:nowrap}.note-move.side-learner{color:var(--green);background:#3e6b2e24;box-shadow:inset 0 0 0 2px var(--good)}.note-move.side-opponent{color:#8e1f18;background:#b3261e1a;box-shadow:inset 0 0 0 2px #b3261e}.note-move.side-neutral{background:var(--cream);box-shadow:inset 0 0 0 2px var(--ink)}.note-move.side-t0{--tone: #2563c9}.note-move.side-t1{--tone: #c0267a}.note-move.side-t2{--tone: #0f8a72}.note-move.side-t3{--tone: #7048c8}.note-move[class*=side-t]{color:var(--tone);background:color-mix(in srgb,var(--tone) 12%,transparent);box-shadow:inset 0 0 0 2px var(--tone)}.note-move.side-error{color:#7e3a12;background:#a9501a24;box-shadow:inset 0 0 0 2px var(--mistake)}.note-move.is-focused{outline:3px solid var(--beak);outline-offset:1px}.note-move[data-glyph]:before{content:attr(data-glyph);margin-right:2px;font-weight:400}.text-pagination{height:24px;display:flex;align-items:center;justify-content:flex-end;gap:8px;font-size:11px;font-weight:800;color:var(--muted)}.text-pagination.with-details{gap:4px}.text-pagination .coach-details{margin-right:auto;flex-shrink:0}.text-measurement{position:fixed;top:0;left:0;height:0;overflow:hidden;visibility:hidden;pointer-events:none}.explanation-probe.prompt{margin:0;max-width:none;font-size:16px;line-height:22px;font-weight:600;overflow-wrap:anywhere;white-space:pre-wrap}.session-board{width:var(--board-size);height:var(--board-size);flex:0 0 var(--board-size);align-self:center}.session-board .chess-board{border-radius:6px}.session-tools{height:40px;flex:0 0 40px;margin:6px 0;display:flex;justify-content:center;align-items:center;gap:8px;font-size:12px;font-weight:700;color:var(--muted)}.session-tools button,.text-pagination button{color:var(--ink);border:2px solid var(--edge);border-radius:8px;background:var(--card);font-size:12px;font-weight:800;padding:2px 8px;min-height:28px}.session-tools button{height:40px;min-height:0;padding:0 10px;line-height:15px;border-radius:10px}.text-pagination button{min-height:22px;padding:0 6px}.session-controls{height:40px;flex:0 0 40px;display:grid;grid-template-columns:40px minmax(0,260px) 40px;justify-content:center;gap:10px}.session-controls .icon-button{height:40px;font-size:26px;border-radius:12px}.session-controls .button{min-height:0;height:40px;padding:0 8px;border-radius:12px;font-size:15px}.session-footnote{flex:1 0 12px;max-height:100px;font-size:10px;font-weight:700;text-align:center;color:var(--muted)}.single-workspace button:disabled{cursor:default}.coach-face{position:relative;flex:none;margin-left:-4px}.coach-ask{position:absolute;right:-6px;bottom:-4px;width:32px;height:32px;padding:0;display:grid;place-items:center;border-radius:50%;border:3px solid var(--paper);background:var(--green);color:var(--card);font-size:16px;font-weight:900;line-height:1;box-shadow:0 2px 0 var(--green-dark)}.coach-ask-label{right:auto;left:50%;top:calc(100% - 4px);bottom:auto;translate:-50% 0;width:auto;height:26px;padding:0 8px;border-radius:999px;font-size:11px;white-space:nowrap}.coach-ask:before{content:"";position:absolute;inset:-8px}.coach-note{margin:-4px 0 0;color:var(--muted);font-size:13px;font-weight:700;line-height:1.4}.single-workspace{position:relative}.coach-sheet{position:absolute;left:0;right:0;bottom:8px;z-index:30;display:flex;flex-direction:column;gap:10px;padding:12px 14px 14px;background:var(--card);border:2px solid var(--outline);border-radius:20px;box-shadow:0 6px 0 var(--shelf),0 14px 32px #3f241233}.coach-sheet-head{display:flex;justify-content:space-between;align-items:center;font-size:16px;font-weight:900}.coach-sheet-head .icon-button{height:36px;border:0;background:transparent;font-size:24px}.coach-suggestions{display:flex;flex-wrap:wrap;gap:8px}.coach-suggestions button{min-height:40px;padding:0 14px;border-radius:999px;border:2px solid var(--edge);background:var(--cream);color:var(--ink);font-size:14px;font-weight:700}.coach-sheet form{display:flex;gap:8px}.coach-sheet input{flex:1;min-width:0;height:48px;-webkit-user-select:text;user-select:text}.coach-sheet .button{min-height:48px}@media(max-height:450px){.single-workspace.training-workspace{--board-size: min(560px, calc(100vw - 24px) , calc(100dvh - 260px) );gap:3px;padding:3px 0}.session-explanation{flex-basis:82px}.coach-avatar{width:56px;height:56px}.session-explanation .speech{padding-top:1px}.explanation-label{height:14px;line-height:14px}.text-pagination{height:22px}.explanation-text.prompt,.explanation-probe.prompt{font-size:15px;line-height:20px}.session-header{height:30px;flex-basis:30px}.close-session{height:30px}.session-tools{height:28px;flex-basis:28px;margin:0}.session-tools button{height:28px}}@media(max-width:380px){.coach-avatar{width:56px;height:56px}.explanation-text.prompt,.explanation-probe.prompt{font-size:15px;line-height:20px}.session-tools{gap:6px}.session-tools button{padding:0 6px}}.drill-origin{display:contents}.drill-origin[hidden]{display:none}.session-tools .drill-offer{color:var(--card);background:var(--green);border-color:var(--green);box-shadow:0 3px 0 var(--green-dark)}.drill-back{margin-left:4px;height:30px;padding:0 10px;color:var(--ink);border:2px solid var(--edge);border-radius:10px;background:var(--card);font-size:12px;font-weight:800}.session-header>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-count{white-space:nowrap}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-ext-wght-normal-D4X5GqEv.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-wght-normal-CY6AOgYE.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-vietnamese-wght-normal-U01xdrZh.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-ext-wght-normal-CXYtwYOx.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-wght-normal-BzFMHfZw.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{font-family:Nunito Variable,system-ui,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none;text-rendering:optimizeLegibility;--paper: #fbf4e2;--card: #fffbf0;--cream: #f6e6bc;--ink: #3f2412;--outline: #5d2f13;--muted: #7a5a3a;--edge: rgba(93, 47, 19, .18);--shelf: rgba(93, 47, 19, .12);--green: #2f5a28;--green-dark: #22481f;--olive: #867c36;--wood: #a65e28;--beak: #f4ac45;--good: #3e6b2e;--inaccuracy: #e7a13a;--mistake: #a9501a;--blunder: #8e2a1c}*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--paper)}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.5}button:focus-visible,input:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid var(--beak);outline-offset:2px}a{color:var(--green);font-weight:700}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:900;letter-spacing:-.01em}h1{font-size:clamp(2rem,5vw,2.8rem);line-height:1.05;margin-bottom:10px}h2{font-size:1.2rem;margin-bottom:4px}h3{font-size:1rem;font-weight:800;margin-bottom:4px}.eyebrow{margin:0 0 6px;color:var(--olive);font-size:.75rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.muted{color:var(--muted)}.small{font-size:.8rem}.speech{position:relative;background:var(--card);border:2px solid var(--outline);border-radius:20px;padding:14px 16px;box-shadow:0 4px 0 var(--shelf)}.speech:before{content:"";position:absolute;left:-9px;top:var(--tail, 26px);width:14px;height:14px;background:inherit;border:solid var(--outline);border-width:0 0 2px 2px;transform:rotate(45deg)}.speech p{margin:0;font-weight:600;line-height:1.5}.app-shell{min-height:100vh;display:flex;flex-direction:column}.topbar{min-height:72px;padding:0 clamp(16px,4vw,64px);display:flex;align-items:center;gap:28px;background:#fbf4e2eb;backdrop-filter:blur(12px);border-bottom:2px solid var(--shelf);position:sticky;top:0;z-index:20}.brand-button,.archive-title{appearance:none;background:transparent;border:0;color:inherit;display:inline-flex;align-items:center;gap:8px;padding:0}.brand-button{font-weight:900;font-size:1.3rem;letter-spacing:-.01em}.brand-icon{width:42px;height:42px}.main-nav{display:flex;gap:6px}.nav-link{display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:0 14px;border:0;border-radius:14px;color:var(--muted);background:transparent;font-size:.95rem;font-weight:800;transition:background .2s,color .2s}.nav-link svg{width:22px;height:22px;flex:none}.nav-link:hover{color:var(--ink);background:var(--shelf)}.nav-link.active{color:var(--green);background:#2f5a281f}.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.icon-button{min-width:44px;height:44px;display:inline-grid;place-items:center;border:2px solid var(--edge);border-radius:14px;background:var(--card);color:var(--ink);font-size:1.1rem;transition:background .2s}.icon-button:hover{background:var(--cream)}.logout-button{padding:0 14px;font-size:.9rem;font-weight:800}.main-content{width:min(1100px,calc(100% - 48px));margin:0 auto;flex:1;padding:36px 0 72px;overflow-x:clip}.site-footer{width:min(1100px,calc(100% - 48px));margin:auto;padding:18px 0 24px;border-top:2px solid var(--shelf);color:var(--muted);display:flex;justify-content:space-between;gap:16px;font-size:.78rem;font-weight:700}.page-heading{margin-bottom:28px}.surface{background:var(--card);border:2px solid var(--edge);border-radius:20px;box-shadow:0 4px 0 var(--shelf)}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border-radius:14px;border:2px solid transparent;padding:8px 16px;color:var(--ink);background:var(--card);font-size:.95rem;font-weight:900;transition:background .2s}.button-primary{color:var(--card);background:var(--green);border-color:var(--green);box-shadow:0 4px 0 var(--green-dark)}.button-primary:hover{background:#366a2e}.button-primary:active:not(:disabled){translate:0 4px;box-shadow:none}.button-outline{color:var(--green);border-color:var(--green);box-shadow:0 3px 0 var(--shelf)}.button-outline:hover{background:#2f5a2814}.button-wide{width:100%;justify-content:space-between;margin-top:18px;padding:12px 18px}.alert{border-radius:14px;padding:11px 14px;font-size:.9rem;font-weight:700;line-height:1.45}.alert-error{color:var(--blunder);background:#8e2a1c14;border:2px solid rgba(142,42,28,.25)}.alert-success{color:var(--green);background:#2f5a2814;border:2px solid rgba(47,90,40,.22)}.page-alert{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.page-alert button{color:inherit;border:0;background:transparent;text-decoration:underline;font-weight:800}.loading-state,.splash{min-height:42vh;display:grid;place-items:center;align-content:center;gap:12px;color:var(--muted);font-weight:700}.splash{min-height:100vh}.brand-mark{width:96px;height:96px}.loader{width:26px;height:26px;border:3px solid var(--cream);border-top-color:var(--green);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}label{display:flex;flex-direction:column;gap:7px;color:var(--ink);font-size:.9rem;font-weight:800}input,textarea{width:100%;border:2px solid var(--edge);background:var(--card);color:var(--ink);border-radius:14px;padding:11px 14px;outline:none;font-weight:600}input:focus,textarea:focus{border-color:var(--green)}.greeting{display:flex;align-items:flex-end;gap:4px;margin-bottom:18px}.greeting-magnus{width:clamp(130px,22vw,190px);height:auto;flex:none;margin-left:-10px}.greeting .speech{--tail: auto;flex:1;max-width:520px;margin-bottom:34px}.greeting .speech:before{top:auto;bottom:24px}.greeting h1{font-size:clamp(1.5rem,4vw,2rem);margin-bottom:4px}.start-cta{display:flex;justify-content:space-between;width:min(100%,520px);min-height:60px;margin-bottom:26px;padding:0 20px;font-size:1.15rem;border-radius:18px;box-shadow:0 5px 0 var(--green-dark);animation:start-pop .3s linear both}.start-cta span{font-size:.85rem;font-weight:700;opacity:.9}.start-cta:active:not(:disabled){translate:0 5px;box-shadow:none}@keyframes start-pop{0%,10%{opacity:0;scale:.6}20%{opacity:1;scale:.6;animation-timing-function:cubic-bezier(0,0,0,1)}to{opacity:1;scale:1}}@media(prefers-reduced-motion:reduce){.start-cta{animation:none}}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,1fr);grid-template-areas:"queue stats";gap:20px;align-items:start}.dashboard-grid:not(:has(.training-queue)){grid-template-columns:minmax(0,520px);grid-template-areas:"stats"}.stats-strip{grid-area:stats;padding:16px;display:flex;flex-direction:column;gap:12px}.stats-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.stats-head h2{margin:0}.stats-head span{color:var(--muted);font-size:.9rem;font-weight:800}.stat-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.stat-tiles>div{display:flex;flex-direction:column;padding:10px 12px;border-radius:14px;background:var(--cream)}.stat-value{font-size:1.6rem;font-weight:900;line-height:1.1}.stat-value.accent{color:var(--green)}.stat-label{color:var(--muted);font-size:.8rem;font-weight:800}.training-queue{grid-area:queue;overflow:hidden}.section-header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 16px 10px}.section-header .eyebrow{margin-bottom:2px}.count-badge{color:var(--green);background:#2f5a281a;border-radius:999px;padding:4px 10px;font-size:.8rem;font-weight:900;white-space:nowrap}.exercise-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 16px;border-top:2px solid var(--shelf)}.exercise-index{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;border:2px solid var(--outline);background:var(--cream);font-size:.85rem;font-weight:900}.exercise-info h3{margin-bottom:2px}.exercise-info p{color:var(--muted);margin-bottom:4px;font-size:.9rem;line-height:1.4}.tag{color:var(--olive);font-size:.78rem;font-weight:800}.game-glyph{width:40px;height:40px;flex:none;display:grid;place-items:center;border-radius:12px;background:var(--cream);color:var(--ink);font-size:1.5rem}.game-arrow{color:var(--muted);font-weight:900}.empty-copy{color:var(--muted);padding:16px;font-size:.9rem;font-weight:600}.archive-table-wrap{overflow:hidden}.archive-toolbar{padding:18px 20px;display:flex;justify-content:space-between;align-items:start;gap:12px;border-bottom:2px solid var(--shelf)}.archive-toolbar h2{margin-bottom:4px}.archive-toolbar p{margin:0;font-size:.9rem}.archive-table{overflow-x:auto}.archive-row{min-width:700px;width:100%;display:grid;grid-template-columns:2.2fr .7fr .7fr 1.2fr 25px 44px;gap:15px;align-items:center;text-align:left;padding:12px 20px}.archive-head{color:var(--muted);font-size:.75rem;font-weight:900;letter-spacing:.06em}.archive-data{position:relative;color:var(--ink);border-top:2px solid var(--shelf);font-size:.9rem;transition:background .2s}.archive-data:hover{background:#f6e6bc80}.archive-title{display:flex;align-items:center;gap:11px;text-align:left}.archive-title:after{content:"";position:absolute;inset:0}.archive-delete{position:relative;z-index:1;color:var(--muted)}.archive-delete:hover{color:var(--blunder)}.archive-delete svg{width:20px;height:20px}.archive-title strong{font-weight:800}.moment-pill{display:inline-block;min-width:28px;text-align:center;color:var(--green);background:#2f5a281a;border-radius:999px;padding:2px 8px;font-weight:900}.profile-card{display:grid;grid-template-columns:1fr 1.1fr;gap:48px;padding:28px;max-width:860px}.profile-card+.profile-card{margin-top:18px}.profile-card h2{margin-bottom:10px}.profile-card p:not(.eyebrow){line-height:1.55;font-size:.92rem}.profile-card form{display:flex;flex-direction:column;gap:14px}.profile-card .button{align-self:start;margin-top:4px}.login-page{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr}.login-art{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:6vw;background:var(--cream)}.login-magnus{width:min(300px,60vw);height:auto}.login-art .speech{--tail: auto;max-width:380px}.login-art .speech:before{left:50%;top:-9px;margin-left:-7px;border-width:2px 0 0 2px}.login-panel{display:grid;align-content:center;padding:6vw}.login-card{width:min(360px,100%);margin:auto}.wordmark{display:flex;align-items:center;gap:8px;margin-bottom:28px;font-size:1.4rem;font-weight:900}.wordmark img{width:48px;height:48px}.login-card h2{font-size:2.2rem;margin-bottom:8px}.login-card .muted{line-height:1.5;margin-bottom:26px;font-weight:600}.login-card form{display:flex;flex-direction:column;gap:16px}.board-shell{position:relative;width:100%}.chess-board{width:100%;aspect-ratio:1;border-radius:10px;overflow:hidden;isolation:isolate;touch-action:none;box-shadow:0 0 0 2px var(--outline),0 5px 0 var(--shelf)}.cg-wrap cg-board{background-color:#f6e6bc;background-image:conic-gradient(#b5733c 25%,#f6e6bc 0 50%,#b5733c 0 75%,#f6e6bc 0);background-size:25% 25%}.board-shell coords{z-index:3;opacity:1;font-size:10px;font-weight:900}.board-shell coords.files{left:0;bottom:1px;height:auto}.board-shell coords.files coord{flex:1 1 0;text-align:right;padding-right:3px}.board-shell coords.ranks{left:3px;top:1px}.board-shell coords.ranks coord{flex:1 1 0;transform:none}.board-shell coords coord{--rim: #f6e6bc;color:var(--outline);text-shadow:0 0 2px var(--rim),0 0 2px var(--rim)}.board-shell coords coord:nth-child(odd),.board-shell coords.black coord:nth-child(2n){--rim: #b5733c;color:#f6e6bc}.board-shell coords.black coord:nth-child(odd){--rim: #f6e6bc;color:var(--outline)}.cg-wrap square.selected{background-color:#2f5a288c;box-shadow:inset 0 0 0 4px #2f5a28}.cg-wrap square.move-dest{background:radial-gradient(rgba(34,72,31,.8) 22%,transparent 23%)}.cg-wrap square.move-dest.oc{background:radial-gradient(transparent 70%,#22481fcc 71%)}.cg-wrap square.move-dest:hover{background:#2f5a2866}.cg-wrap square.last-move{background-color:#f4ac458c}.cg-wrap square.mark-learner{background-color:#3e6b2e73;box-shadow:inset 0 0 0 4px #3e6b2e}.cg-wrap square.mark-opponent{background-color:#b3261e59;box-shadow:inset 0 0 0 4px #b3261e}.cg-wrap square.mark-neutral{background-color:#fffbf099;box-shadow:inset 0 0 0 4px var(--ink)}.cg-wrap .cg-shapes{opacity:1;filter:drop-shadow(0 0 1.5px rgba(255,251,240,.95))}.cg-wrap .cg-custom-svgs text{font-family:inherit;font-weight:900}.cg-wrap square.check{background:radial-gradient(ellipse at center,#c0392b 0%,transparent 75%)}.promotion-popover{position:absolute;inset:0;display:grid;place-items:center;background:#3f241273;border-radius:10px}.promotion-label{position:absolute;top:37%;color:var(--card);font-weight:800}.promotion-actions{display:flex;gap:8px}.promotion-button{width:48px;height:48px;border:2px solid var(--outline);background:var(--card);color:var(--ink);border-radius:12px;font-weight:900}.promotion-button:hover{background:var(--cream)}.add-game{margin-bottom:18px;overflow:hidden}.add-game .archive-toolbar{border-bottom:0}.add-game form{display:flex;flex-direction:column;gap:14px;padding:0 20px 20px}.add-game textarea{resize:vertical;min-height:140px;font:12px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace}.color-choice{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 18px;font-size:.9rem;font-weight:800}.color-choice legend{padding:0;margin-bottom:7px}.color-choice label,.checkbox{flex-direction:row;align-items:center;gap:9px;font-weight:700}.color-choice input,.checkbox input{width:auto;accent-color:var(--green)}.form-actions,.key-state{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.play-setup{display:grid;gap:18px;max-width:520px;padding:24px}.level-choice{flex-direction:column}.level-choice small{display:block;color:var(--muted);font-size:.78rem;font-weight:600}.level-choice label.locked{opacity:.55}.motif-collection{max-width:520px;margin-top:18px;padding:20px 24px}.motif-collection ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}.motif-collection summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding:8px 0;cursor:pointer}.motif-collection p{margin:0 0 10px;font-size:.9rem;line-height:1.5;color:var(--muted)}.motif-counts{margin-left:auto;color:var(--muted);font-size:.8rem;font-weight:700}.motif-stage{padding:1px 8px;border-radius:999px;background:var(--shelf);font-size:.72rem;font-weight:800}.motif-stage.stage-silent{background:#2f5a2826;color:var(--green)}.key-state{justify-content:space-between;font-size:.9rem;font-weight:700}.job-list{list-style:none;margin:0;padding:0 20px 20px;display:grid;gap:8px}.job{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 14px;padding:10px 13px;border:2px solid var(--edge);border-radius:14px;font-size:.9rem}.job strong{font-weight:800}.job-running span,.job-queued span{color:var(--green);font-weight:800}.job-failed span{color:var(--blunder);font-weight:800}html{overflow-x:clip}.view-pane.from-right{--from: 32px;animation:view-in .2s cubic-bezier(.06,0,0,1)}.view-pane.from-left{--from: -32px;animation:view-in .2s cubic-bezier(.06,0,0,1)}.view-pane.from-swipe-right{--from: 100%;animation:swipe-in .22s cubic-bezier(.2,0,0,1)}.view-pane.from-swipe-left{--from: -100%;animation:swipe-in .22s cubic-bezier(.2,0,0,1)}@keyframes view-in{0%{opacity:0;translate:var(--from) 0}}@keyframes swipe-in{0%{translate:var(--from) 0}}@media(prefers-reduced-motion:reduce){.view-pane[class*=from-]{animation:none}}@media(pointer:coarse){input,textarea,.add-game textarea{font-size:16px}}@media(max-width:850px){.dashboard-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"stats" "queue"}.login-page{grid-template-columns:1fr}.login-art{padding:40px 24px 28px}.login-panel{padding:36px 24px 56px}.profile-card{grid-template-columns:1fr;gap:20px}}@media(max-width:600px){.topbar{min-height:60px;padding:0 12px;backdrop-filter:none;background:var(--paper)}.main-nav{position:fixed;left:0;right:0;bottom:0;z-index:20;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:8px 12px calc(10px + env(safe-area-inset-bottom));background:var(--card);border-top:2px solid var(--shelf)}.nav-link{flex-direction:column;justify-content:center;gap:2px;min-height:54px;padding:0 4px;font-size:.75rem}.app-shell{padding-bottom:76px}.main-content{touch-action:pan-y pinch-zoom}.main-content,.site-footer{width:calc(100% - 32px)}.main-content{padding:16px 0 40px}.site-footer{font-size:.7rem}.page-heading{margin-bottom:20px}.greeting-magnus{width:130px}.exercise-row{grid-template-columns:38px minmax(0,1fr)}.exercise-row .button{grid-column:2;justify-self:start;min-height:40px}.archive-toolbar{display:block}.archive-row{min-width:0;grid-template-columns:minmax(0,1fr) auto 18px 44px;padding-left:16px;padding-right:16px}.archive-head,.archive-data>:nth-child(2),.archive-data>:nth-child(4){display:none}.archive-title{min-width:0}.archive-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-card{padding:20px 16px}.add-game form,.job-list{padding-left:16px;padding-right:16px}}@media(max-width:400px){.brand-button{font-size:1.1rem}.brand-icon{width:36px;height:36px}}
