.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-board{background-color:#f0d9b5;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIgogICAgIHZpZXdCb3g9IjAgMCA4IDgiIHNoYXBlLXJlbmRlcmluZz0iY3Jpc3BFZGdlcyI+CjxnIGlkPSJhIj4KICA8ZyBpZD0iYiI+CiAgICA8ZyBpZD0iYyI+CiAgICAgIDxnIGlkPSJkIj4KICAgICAgICA8cmVjdCB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBpZD0iZSIgb3BhY2l0eT0iMCIvPgogICAgICAgIDx1c2UgeD0iMSIgeT0iMSIgaHJlZj0iI2UiIHg6aHJlZj0iI2UiLz4KICAgICAgICA8cmVjdCB5PSIxIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBpZD0iZiIgb3BhY2l0eT0iMC4yIi8+CiAgICAgICAgPHVzZSB4PSIxIiB5PSItMSIgaHJlZj0iI2YiIHg6aHJlZj0iI2YiLz4KICAgICAgPC9nPgogICAgICA8dXNlIHg9IjIiIGhyZWY9IiNkIiB4OmhyZWY9IiNkIi8+CiAgICA8L2c+CiAgICA8dXNlIHg9IjQiIGhyZWY9IiNjIiB4OmhyZWY9IiNjIi8+CiAgPC9nPgogIDx1c2UgeT0iMiIgaHJlZj0iI2IiIHg6aHJlZj0iI2IiLz4KPC9nPgo8dXNlIHk9IjQiIGhyZWY9IiNhIiB4OmhyZWY9IiNhIi8+Cjwvc3ZnPg==)}cg-board square.move-dest{background:radial-gradient(#14551e80 22%,#208530 0,#0000004d,#0000 0)}cg-board square.premove-dest{background:radial-gradient(#141e5580 22%,#203085 0,#0000004d,#0000 0)}cg-board square.oc.move-dest{background:radial-gradient(transparent 0%,transparent 80%,rgba(20,85,0,.3) 80%)}cg-board square.oc.premove-dest{background:radial-gradient(transparent 0%,transparent 80%,rgba(20,30,85,.2) 80%)}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,#e70000 25%,#a9000000 89%,#9e000000)}cg-board square.current-premove{background-color:#141e5580}.orientation-white .ranks :nth-child(odd),.orientation-white .files :nth-child(2n),.orientation-black .ranks :nth-child(2n),.orientation-black .files :nth-child(odd),coords.squares:nth-of-type(odd) :nth-child(2n),coords.squares:nth-of-type(2n) :nth-child(odd){color:#484848cc}.orientation-white .ranks :nth-child(2n),.orientation-white .files :nth-child(odd),.orientation-black .ranks :nth-child(odd),.orientation-black .files :nth-child(2n),coords.squares:nth-of-type(odd) :nth-child(odd),coords.squares:nth-of-type(2n) :nth-child(2n){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+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=)}.board{width:100%;max-width:640px;aspect-ratio:1 / 1;border-radius:var(--r-s, 4px);overflow:hidden;box-shadow:0 4px 16px #00000059}.board cg-board{background-color:var(--sq-light, #ebecd0);background-image:conic-gradient(var(--sq-dark, #739552) 0 90deg,var(--sq-light, #ebecd0) 0 180deg,var(--sq-dark, #739552) 0 270deg,var(--sq-light, #ebecd0) 0);background-size:25% 25%}.board cg-board square.last-move{background-color:var(--sq-last, rgb(255 255 51 / .42))}.board cg-board square.selected{background-color:#ffff3380}.board cg-board square.move-dest{background:radial-gradient(rgb(0 0 0 / .16) 22%,transparent 0)}.board cg-board square.oc.move-dest{background:radial-gradient(transparent 0 76%,#00000029 0)}.board cg-board square.move-dest:hover{background:#ffffff40}.board cg-board square.check{background:radial-gradient(ellipse at center,rgb(235 60 40 / 1) 0,rgb(235 60 40 / .6) 30%,transparent 72%)}.board coords{font-family:var(--font-ui, sans-serif);font-weight:800;font-size:11px}.board.orientation-white coords.ranks coord:nth-child(odd),.board.orientation-white coords.files coord:nth-child(odd),.board.orientation-black coords.ranks coord:nth-child(2n),.board.orientation-black coords.files coord:nth-child(2n){color:var(--sq-light, #ebecd0)}.board.orientation-white coords.ranks coord:nth-child(2n),.board.orientation-white coords.files coord:nth-child(2n),.board.orientation-black coords.ranks coord:nth-child(odd),.board.orientation-black coords.files coord:nth-child(odd){color:var(--sq-dark, #739552)}.board cg-board square.board-highlight-green{background-color:#81b64cbf}.board cg-board square.board-highlight-red{background-color:#eb4632b3}.board cg-board square.board-highlight-yellow{background-color:#ffd633a6}.board cg-board square.board-highlight-blue{background-color:#5096e68c}.fen-export{display:grid;gap:var(--s-1);padding-top:var(--s-3);border-top:1px solid var(--line)}.fen-export-label{font-size:var(--fs-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-3)}.fen-export-row{display:flex;gap:var(--s-2);min-width:0}.fen-export-field{flex:1;min-width:0;font-family:var(--font-data);font-size:var(--fs-xs);background:var(--bg-deep)}.fen-export-status,.fen-export-hint{margin:0;font-size:var(--fs-xs);color:var(--text-3)}.fen-export-status:empty{display:none}.fen-export-status.is-copied{color:var(--ok)}.eval-bar-panel{display:flex;gap:.75rem}.eval-bar{position:relative;width:26px;height:200px;flex:none;border-radius:var(--r-s, 4px);background-color:#403d39;display:flex;flex-direction:column-reverse;overflow:hidden}.eval-bar:after{content:"";position:absolute;left:0;right:0;top:50%;height:2px;margin-top:-1px;background:#d64f00bf}.eval-bar-fill{width:100%;background-color:#fff;transition:height .42s var(--ease-out, ease-out)}.eval-bar-details{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;min-width:0;padding:8px 12px;border-radius:var(--r-m, 8px);background:var(--surface, #262421);font-family:var(--font-data, monospace)}.eval-bar-score{margin:0;padding:2px 8px;border-radius:var(--r-s, 4px);background:#fff;color:#262421;font-size:var(--fs-md, .9375rem);font-weight:600;letter-spacing:-.02em}.eval-bar-lines{display:flex;flex-wrap:wrap;gap:2px 14px;margin:0;padding:0;list-style:none;font-size:var(--fs-sm, .8125rem);color:var(--text, #f0efed)}.eval-bar-lines li+li{margin-top:0}.eval-bar-lines span{color:var(--text-3, #b1afac);margin-left:4px}.coord-board{position:relative}.coord-board>.board{width:100%;max-width:none;margin:0}.coord-grid{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;display:grid;grid-template-rows:repeat(8,1fr);pointer-events:none}.coord-grid-row{display:grid;grid-template-columns:repeat(8,1fr)}.coord-cell{pointer-events:none}.coord-grid-pointer .coord-cell{pointer-events:auto;cursor:pointer}.coord-grid-pointer .coord-cell:hover{background:#ffffff2e}.coord-cell:focus-visible{outline:3px solid var(--focus);outline-offset:-3px;background:#ffffff1f}.coord-setup fieldset{display:grid;gap:var(--s-2);margin:0 0 var(--s-4);padding:var(--s-3);border:1px solid var(--line, rgb(255 255 255 / .12));border-radius:var(--r-m)}.coord-option{display:flex;gap:var(--s-2);align-items:flex-start}.coord-option>span{display:grid}.coord-option-inline{align-items:center}.coord-prompt{display:grid;gap:var(--s-1)}.coord-target{font-size:clamp(2.5rem,6vw,4rem);font-weight:800;line-height:1;color:#fff;font-variant-numeric:tabular-nums}.coord-name-form{display:grid;gap:var(--s-1)}.coord-name-form input{max-width:8ch;font-size:var(--fs-lg);text-transform:lowercase}.coord-choices{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s-2)}.coord-choices button{font-size:var(--fs-lg);font-weight:800}.coord-feedback{min-height:2.5em}.coord-missed{display:flex;flex-wrap:wrap;gap:var(--s-2);padding:0;list-style:none}.coord-missed li{padding:2px 8px;border-radius:var(--r-s, 4px);background:var(--surface-2, rgb(255 255 255 / .08));font-weight:700}.coord-xp{font-weight:800;color:var(--accent, #81b64c)}.coord-progress{display:grid;gap:var(--s-4)}.coord-records{border-collapse:collapse;width:100%;max-width:720px}.coord-records caption,.coord-heat caption{text-align:left;padding-bottom:var(--s-2)}.coord-records th,.coord-records td{padding:6px 10px;text-align:left;border-bottom:1px solid var(--line, rgb(255 255 255 / .12))}.coord-heat-block{display:flex;flex-wrap:wrap;gap:var(--s-5);align-items:flex-start}.coord-heat{border-collapse:separate;border-spacing:2px;table-layout:fixed}.coord-heat th,.coord-heat thead td{width:1.5em;font-weight:700;color:var(--muted, #bdbdbd)}.coord-heat td{width:52px;height:46px;padding:2px;text-align:center;vertical-align:middle;border-radius:4px;line-height:1.15;color:#fff}.coord-heat-empty{background:#ffffff0a;color:var(--muted, #bdbdbd)}.coord-heat-rate{display:block;font-weight:800;font-size:.85rem}.coord-heat-n{display:block;font-size:.7rem}@media (max-width: 600px){.coord-heat td{width:34px;height:34px}.coord-heat-n{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}}.guided-review-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:start center;overflow-y:auto;padding:32px 12px;background:var(--bg)}.guided-review{width:min(600px,100%);display:grid;gap:14px;padding:20px;border-radius:var(--r-l);background:var(--surface);box-shadow:var(--shadow-pop)}.guided-review:focus{outline:none}.guided-review-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.guided-review .board{max-width:460px;justify-self:center}.guided-review:has(.board-room){width:min(1240px,100%)}.guided-review .board-room{--room-board: max( 260px, min(720px, calc(100vh - 210px) , calc(100vw - var(--room-side) - 120px)) )}.guided-review .board-room .board{max-width:none;justify-self:stretch}.guided-review .board-room-side{position:static;max-height:none;overflow:visible;padding:0;background:none;box-shadow:none}.guided-review section:has(>.board-room){margin:0;padding:0;border:0}@media (max-width: 980px){.guided-review .board-room{--room-board: min( calc(100vw - 72px) , calc(100vh - 210px) )}}.guided-review-actions{display:flex;flex-wrap:wrap;gap:8px}.guided-review-reveal{display:grid;grid-template-columns:max-content 1fr;gap:6px 14px;margin:0}.guided-review-reveal dt{color:var(--text-3);font-size:var(--fs-sm)}.guided-review-reveal dd{margin:0;font-weight:700}.guided-review-results{margin:0;padding-left:1.5em}.reflection-panel{margin-top:var(--s-3);padding-top:var(--s-3);border-top:1px solid var(--line)}.reflection-panel h3{margin:0 0 var(--s-2);font-size:var(--fs-md)}.reflection-panel form{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s-2)}.reflection-label{margin:0;font-size:var(--fs-sm);font-weight:700;color:var(--text-2)}.reflection-panel textarea{width:100%;min-height:5rem;resize:vertical;font-family:var(--font-ui)}.reflection-count{margin:0;font-size:var(--fs-xs);color:var(--text-3)}.reflection-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2)}.reflection-status{margin:0;font-size:var(--fs-sm);color:var(--ok)}.reflection-comparison{margin:var(--s-2) 0 0;font-size:var(--fs-sm)}.move .move-reflection-mark{margin-left:4px;font-size:.85em;opacity:.75}.line-player{display:grid;gap:var(--s-2);margin-top:var(--s-2)}.line-player-controls{display:flex;flex-wrap:wrap;gap:var(--s-2)}.line-player-moves{display:flex;flex-wrap:wrap;gap:4px 12px;margin:0;padding-left:1.5em;font-weight:600}.line-player-moves li[aria-current=step]{font-weight:800;color:#fff;text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:3px}.line-player-status{margin:0;font-size:var(--fs-sm);color:var(--text-3)}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-next-latin-ext-400-normal-BalHKn7d.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-next-latin-ext-400-normal-qxMiU51n.woff) format("woff");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:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-next-latin-400-normal-FfmJh7DR.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-next-latin-400-normal-DPp7N0cD.woff) format("woff");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}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/atkinson-hyperlegible-next-latin-ext-600-normal-kZZEtAc7.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-next-latin-ext-600-normal-BBAQIogt.woff) format("woff");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:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/atkinson-hyperlegible-next-latin-600-normal-BBuhw47K.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-next-latin-600-normal-BhgCag5w.woff) format("woff");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}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-next-latin-ext-700-normal-CBw-mJf_.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-next-latin-ext-700-normal-292QVhS1.woff) format("woff");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:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-next-latin-700-normal-Dpiyiu63.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-next-latin-700-normal-C2qZD_Q9.woff) format("woff");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}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/atkinson-hyperlegible-next-latin-ext-800-normal-CCpWmrAz.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-next-latin-ext-800-normal-DJxWoX6k.woff) format("woff");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:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/atkinson-hyperlegible-next-latin-800-normal-D32lleIF.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-next-latin-800-normal-DtRtCSx4.woff) format("woff");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}@font-face{font-family:Atkinson Hyperlegible Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-mono-latin-ext-400-normal-CpVFOiMk.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-mono-latin-ext-400-normal-ITMuFrSK.woff) format("woff");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:Atkinson Hyperlegible Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-mono-latin-400-normal-CmMGer93.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-mono-latin-400-normal-Cmjm2dBj.woff) format("woff");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}@font-face{font-family:Atkinson Hyperlegible Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/atkinson-hyperlegible-mono-latin-ext-600-normal-DKhxRsTL.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-mono-latin-ext-600-normal-ZiH-ObRk.woff) format("woff");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:Atkinson Hyperlegible Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/atkinson-hyperlegible-mono-latin-600-normal-BiYyYOKJ.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-mono-latin-600-normal-CuPF9o0F.woff) format("woff");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{color-scheme:dark;--bg: #302e2b;--bg-deep: #211f1c;--surface: #262421;--surface-2: #3c3a37;--surface-3: #4b4844;--row-alt: #2b2926;--line: rgb(255 255 255 / .08);--line-strong: rgb(255 255 255 / .16);--text: #f0efed;--text-2: #c3c2c0;--text-3: #b1afac;--text-on-light: #262421;--accent: #81b64c;--accent-soft: rgb(129 182 76 / .16);--btn: #457a28;--btn-hover: #4f8a2f;--btn-lip: #2c5218;--link: #93c35d;--focus: #9fd06a;--ok: #8fc95a;--ok-wash: rgb(129 182 76 / .14);--warn: #f0c24b;--warn-wash: rgb(240 194 75 / .12);--err: #f27a66;--err-wash: rgb(232 72 52 / .14);--sq-light: #ebecd0;--sq-dark: #739552;--sq-last: rgb(255 255 51 / .42);--r-s: 4px;--r-m: 8px;--r-l: 12px;--shadow-panel: 0 1px 2px rgb(0 0 0 / .25), 0 6px 18px rgb(0 0 0 / .18);--shadow-pop: 0 10px 30px rgb(0 0 0 / .45);--lip: inset 0 -3px 0 rgb(0 0 0 / .28);--hatch: repeating-linear-gradient(135deg, transparent 0 5px, rgb(255 255 255 / .06) 5px 7px);--font-ui: "Atkinson Hyperlegible Next", "Segoe UI", system-ui, sans-serif;--font-data: "Atkinson Hyperlegible Mono", ui-monospace, "Cascadia Mono", monospace;--fs-xs: .75rem;--fs-sm: .8125rem;--fs-md: .9375rem;--fs-lg: 1.125rem;--fs-xl: 1.375rem;--fs-2xl: 2rem;--fs-bill: 4.5rem;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 24px;--s-6: 32px;--sidebar-w: 208px;--ease-out: cubic-bezier(.16, 1, .3, 1);--t-fast: .12s;--t-med: .2s}*,*:before,*:after{box-sizing:border-box}html{font-family:var(--font-ui);font-size:100%;-webkit-text-size-adjust:100%;text-size-adjust:100%;scrollbar-color:var(--surface-3) transparent;scrollbar-width:thin}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-size:var(--fs-md);line-height:1.5;font-feature-settings:"tnum" 1;-webkit-font-smoothing:antialiased;caret-color:var(--accent)}::selection{background:#81b64c73;color:#fff}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--surface-3);border:2px solid transparent;border-radius:999px;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background-color:#5d5a55}::-webkit-scrollbar-corner{background:transparent}h1,h2,h3,h4{margin:0;line-height:1.2;text-wrap:balance}h3{font-size:var(--fs-md);font-weight:700;margin:var(--s-4) 0 var(--s-2)}p{margin:0 0 var(--s-2);max-width:75ch}ul,ol{margin:0 0 var(--s-2);padding-left:1.25rem}li+li{margin-top:2px}strong{font-weight:700}:where(a){color:var(--link);text-decoration:underline;text-decoration-color:#93c35d73;text-decoration-thickness:1px;text-underline-offset:3px}:where(a:hover){color:#b2dc80;text-decoration-color:currentColor}:where(.side-link,.brand,.side-queue,.button,.stats-train,.home-game-opponent,.puzzle-list a,.games-list-row a,main>h1+p>a){text-decoration:none}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}code,kbd,samp{font-family:var(--font-data);font-size:.92em}:where(button,.button){-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);min-height:34px;padding:6px 14px 8px;border:0;border-radius:var(--r-m);background:var(--surface-2);box-shadow:var(--lip);color:var(--text);font:700 var(--fs-sm) / 1.2 var(--font-ui);text-decoration:none;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;transition:background-color var(--t-fast) var(--ease-out),transform var(--t-fast) var(--ease-out)}:where(button:hover:not(:disabled),.button:hover){background:var(--surface-3);color:var(--text);text-decoration:none}:where(button:active:not(:disabled),.button:active){transform:translateY(1px);box-shadow:inset 0 -1px #00000047}:where(button[aria-pressed=true]){background:var(--accent-soft);color:var(--text);box-shadow:inset 0 0 0 1px var(--accent)}:where(button:disabled){color:var(--text-3);opacity:.55;cursor:default}.button-primary,button.button-primary{background:var(--btn);color:#fff;box-shadow:inset 0 -4px 0 var(--btn-lip);padding-bottom:9px}.button-primary:hover,button.button-primary:hover:not(:disabled){background:var(--btn-hover);color:#fff}.button-primary:active,button.button-primary:active:not(:disabled){box-shadow:inset 0 -2px 0 var(--btn-lip)}:where(input:not([type=checkbox],[type=radio],[type=range]),select,textarea){-webkit-appearance:none;-moz-appearance:none;appearance:none;min-height:34px;padding:6px 10px;border:1px solid var(--line-strong);border-radius:var(--r-s);background:var(--bg-deep);color:var(--text);font:400 var(--fs-md) / 1.3 var(--font-ui);max-width:100%;transition:border-color var(--t-fast) var(--ease-out)}:where(input:not([type=checkbox],[type=radio],[type=range]),select,textarea):hover{border-color:#ffffff47}:where(input,select,textarea):focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #81b64c4d}:where(textarea){display:block;width:100%;min-height:8rem;padding:10px 12px;font-family:var(--font-data);font-size:var(--fs-sm);line-height:1.55;resize:vertical}input::placeholder,textarea::placeholder{color:var(--text-3);opacity:1}:where(input:disabled,select:disabled,textarea:disabled){background:var(--surface);color:var(--text-3)}:where(select){padding-right:32px;cursor:pointer;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23c3c2c0' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 11px center / 10px 6px,var(--bg-deep)}:where(select) option{background:var(--surface);color:var(--text)}:where(input[type=checkbox],input[type=radio]){width:16px;height:16px;margin:0 6px 0 0;accent-color:var(--btn);vertical-align:-3px;cursor:pointer}input[type=range]{accent-color:var(--accent)}:where(label){font-size:var(--fs-sm);font-weight:700;color:var(--text-2)}fieldset{margin:0;padding:var(--s-2) var(--s-3) var(--s-3);border:1px solid var(--line-strong);border-radius:var(--r-m);min-width:0}legend{padding:0 6px;font-size:var(--fs-sm);font-weight:700;color:var(--text-2)}details>summary{display:inline-flex;align-items:center;gap:var(--s-2);list-style:none;cursor:pointer;font-weight:700;font-size:var(--fs-sm);padding:6px 0;color:var(--text)}details>summary::-webkit-details-marker{display:none}details>summary:before{content:"";flex:none;width:7px;height:7px;margin:0 3px 0 2px;border-right:2px solid var(--text-3);border-bottom:2px solid var(--text-3);transform:rotate(-45deg);transition:transform var(--t-med) var(--ease-out)}details[open]>summary:before{transform:rotate(45deg) translate(-2px,-1px)}details>summary:hover{color:var(--accent)}:where(table){border-collapse:separate;border-spacing:0;width:100%;font-size:var(--fs-sm);font-variant-numeric:tabular-nums}caption{caption-side:top;text-align:left;font-weight:700;font-size:var(--fs-sm);color:var(--text-2);padding:0 0 var(--s-2)}:where(thead th,thead td){position:sticky;top:0;z-index:1;padding:8px 12px;background:var(--surface-2);color:var(--text-2);font-size:var(--fs-xs);font-weight:700;text-align:left;white-space:nowrap}:where(tbody th,tbody td,tfoot th,tfoot td){padding:8px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}tbody th{font-weight:700}:where(tbody tr:hover>*){background:#ffffff09}dl{margin:0}hr{border:0;height:1px;background:var(--line);margin:var(--s-4) 0}figure{margin:0}figcaption{font-size:var(--fs-xs);color:var(--text-3)}img,svg{max-width:100%}:where([role=alert]){color:var(--err);font-weight:700}.visually-hidden:not(:focus-within){position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.recharts-wrapper{font-family:var(--font-ui);font-size:11px}.recharts-cartesian-axis-tick-value,.recharts-text{fill:var(--text-3)}.recharts-cartesian-axis-line,.recharts-cartesian-axis-tick-line{stroke:var(--line-strong)}.recharts-cartesian-grid line{stroke:var(--line)}.recharts-default-tooltip{background:var(--surface-2)!important;border:0!important;border-radius:var(--r-s);box-shadow:var(--shadow-pop);color:var(--text)}.recharts-legend-item-text{color:var(--text-2)!important}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.app{min-height:100vh;display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr)}.sidebar{position:sticky;top:0;z-index:20;display:flex;flex-direction:column;gap:var(--s-2);height:100vh;padding:var(--s-3) var(--s-2) 64px;background:var(--surface);overflow-y:auto;scrollbar-width:none}.brand{display:flex;align-items:center;gap:10px;padding:6px 8px 14px;color:var(--text);font-size:1.0625rem;font-weight:800;letter-spacing:-.01em;text-decoration:none}.brand:hover{color:var(--text);text-decoration:none}.brand svg{flex:none}.side-nav{display:flex;flex-direction:column;gap:2px}.side-link{position:relative;display:flex;align-items:center;gap:12px;min-height:42px;padding:8px 10px;border-radius:var(--r-s);color:var(--text-2);font-size:var(--fs-md);font-weight:700;line-height:1.2;text-decoration:none;transition:background-color var(--t-fast) var(--ease-out),color var(--t-fast) var(--ease-out)}.side-link .icon{flex:none;width:22px;height:22px;color:var(--text-3);transition:color var(--t-fast) var(--ease-out)}.side-link:hover{background:#ffffff0f;color:var(--text);text-decoration:none}.side-link:hover .icon{color:var(--text)}.side-link[aria-current=page]{background:#ffffff14;color:#fff}.side-link[aria-current=page] .icon{color:var(--accent)}.side-link[aria-current=page]:before{content:"";position:absolute;left:-8px;top:9px;bottom:9px;width:3px;border-radius:0 3px 3px 0;background:var(--accent)}.side-sep{height:1px;margin:8px 10px;background:var(--line)}.side-foot{display:grid;gap:6px;margin-top:auto;padding:var(--s-3) 6px 0;border-top:1px solid var(--line);font-size:var(--fs-xs);color:var(--text-3)}.side-foot p{margin:0}.side-queue{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--r-m);background:var(--surface-2);color:var(--text-2);font-size:var(--fs-sm);font-weight:700;text-decoration:none}.side-queue:hover{background:var(--surface-3);color:var(--text);text-decoration:none}.side-queue-count{display:grid;place-items:center;flex:none;min-width:26px;height:22px;padding:0 6px;border-radius:999px;background:var(--bg-deep);color:var(--text);font-size:var(--fs-xs);font-weight:800}.side-queue-due .side-queue-count{background:var(--btn);color:#fff}.side-queue-pending{height:38px;background:var(--hatch),var(--surface-2)}.side-session{min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--text-2);font-weight:600}.side-engine{display:flex;align-items:center;gap:6px}.side-engine .icon{flex:none;width:14px;height:14px}.language-switcher{position:fixed;left:0;bottom:0;z-index:30;display:flex;align-items:center;gap:8px;width:var(--sidebar-w);height:56px;padding:0 14px;background:var(--surface);border-top:1px solid var(--line)}.language-switcher label{font-size:var(--fs-xs);color:var(--text-3)}.language-switcher select{flex:1;min-width:0;min-height:30px;padding-top:3px;padding-bottom:3px;font-size:var(--fs-sm);background-color:var(--surface-2);border-color:transparent}.session-bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0}.session-bar button{min-height:26px;padding:3px 10px 5px;font-size:var(--fs-xs)}.app-main{min-width:0}.app-main>main,#root>main{display:grid;grid-template-columns:minmax(0,1fr);align-content:start;gap:var(--s-4);min-width:0;max-width:1480px;margin-inline:auto;padding:var(--s-5) 28px 48px}main>h1{font-size:1.625rem;font-weight:800;letter-spacing:-.015em;color:#fff}main>h1+p:has(>a){display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;max-width:none;margin:-6px 0 0;font-size:var(--fs-sm);color:var(--text-3)}main section{min-width:0}main>section,.pane{position:relative;padding:var(--s-4) 18px 18px;border-radius:var(--r-m);background:var(--surface);box-shadow:var(--shadow-panel)}main>section>h2:first-child,.pane>h2:first-child{display:flex;align-items:center;gap:var(--s-2);margin:0 0 var(--s-3);font-size:var(--fs-lg);font-weight:800;color:#fff}main section section,.pane section{padding:var(--s-4) 0 0;margin-top:var(--s-4);border-top:1px solid var(--line);background:none;box-shadow:none;border-radius:0}main section section>h2,.pane section>h2{margin:0 0 var(--s-2);font-size:var(--fs-md);font-weight:800}main>h2{font-size:var(--fs-lg);font-weight:800}.pane-tools{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 var(--s-3)}.app-main>main.dock-grid{display:block;columns:2 520px;column-gap:var(--s-4)}.dock-grid>*{break-inside:avoid;margin-bottom:var(--s-4)}.dock-grid>:not(section),.dock-grid>.scoreboard,.dock-grid>.training-practice,.dock-grid>.training-badges,.dock-grid>.rush-card,.dock-grid>section[aria-labelledby=training-calculation],.dock-grid>section[aria-labelledby=training-history],.dock-grid>section:has(.puzzle-solver,.scoreboard){column-span:all}.ws-boot{display:grid;place-items:center;min-height:100vh;margin:0;max-width:none;font-size:var(--fs-sm);color:var(--text-3)}#root>main{width:min(420px,calc(100% - 32px));margin:max(64px,14vh) auto 48px;padding:28px;border-radius:var(--r-l);background:var(--surface);box-shadow:var(--shadow-pop)}#root>main>h2{margin-top:var(--s-2);font-size:var(--fs-lg)}#root>main form{display:grid;gap:var(--s-1)}#root>main form p{display:grid;gap:6px;margin:0 0 var(--s-2)}#root>main form p br{display:none}#root>main form input{width:100%}#root>main form button[type=submit]{justify-self:stretch;min-height:44px;background:var(--btn);color:#fff;box-shadow:inset 0 -4px 0 var(--btn-lip);font-size:var(--fs-md)}#root:not(:has(.app)) .language-switcher{top:0;bottom:auto;left:auto;right:0;width:auto;background:transparent;border:0}.ws-roll{display:inline-block;animation:ws-roll .32s var(--ease-out)}@keyframes ws-roll{0%{transform:translateY(.4em);opacity:0}to{transform:none;opacity:1}}@media (max-width: 1180px) and (min-width: 761px){.app{--sidebar-w: 68px}.sidebar{padding-inline:8px;align-items:stretch}.brand,.side-link,.side-queue{justify-content:center;padding-inline:0}.side-link[aria-current=page]:before{left:-8px}.brand-name,.side-label,.side-session,.language-switcher label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.side-engine{justify-content:center}.side-foot{padding-inline:0}.language-switcher{width:68px;padding:0 8px}.language-switcher select{padding-inline:6px;background-image:none;text-align:center}}@media (max-width: 760px){.app{grid-template-columns:minmax(0,1fr)}.sidebar{position:sticky;top:0;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;gap:0;padding:6px 8px 0;overflow:visible;box-shadow:0 2px 10px #0000004d}.brand{padding:4px 6px 6px;font-size:var(--fs-md)}.brand svg{width:24px;height:24px}.side-nav{order:3;flex:1 1 100%;flex-direction:row;gap:2px;margin:0 -8px;padding:2px 8px 6px;overflow-x:auto;scrollbar-width:none}.side-link{min-height:38px;padding:6px 10px;font-size:var(--fs-sm);gap:7px}.side-link .icon{width:18px;height:18px}.side-link[aria-current=page]:before{left:10px;right:10px;top:auto;bottom:0;width:auto;height:3px;border-radius:3px 3px 0 0}.side-sep{width:1px;height:auto;margin:8px 4px}.side-foot{margin:0 104px 0 auto;padding:0;border:0}.side-session,.side-engine{display:none}.side-queue{padding:5px 8px}.side-queue .side-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.language-switcher{top:0;bottom:auto;left:auto;right:0;width:auto;height:50px;padding:0 8px;background:transparent;border:0}.language-switcher label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.app-main>main{padding:var(--s-4) 12px 40px;gap:var(--s-3)}main>h1{font-size:1.375rem}main>section,.pane{padding:14px 12px}}.offline-banner{margin:0;padding:.5rem 1rem;background:var(--warn-wash);color:var(--text);border-bottom:2px solid var(--warn);font-weight:600}.offline-reason{margin:.25rem 0 0;color:var(--text-3);font-size:var(--fs-sm)}.update-prompt{position:fixed;right:var(--s-4);bottom:var(--s-4);z-index:50;display:flex;align-items:center;gap:var(--s-3);padding:var(--s-2) var(--s-3);background:var(--surface-2);color:var(--text);border:1px solid var(--line-strong);border-radius:var(--r-m);box-shadow:var(--shadow-pop)}main>section,.pane{overflow-x:auto}.table-scroll{max-width:100%;overflow-x:auto;border-radius:var(--r-m);background:var(--bg-deep)}.table-scroll>table{min-width:max-content}.table-scroll>table caption{padding:10px 12px 6px}.cls-chip,.move-classification{display:inline-grid;place-items:center;min-width:1.6em;height:1.6em;padding:0 4px;margin-right:6px;border-radius:999px;background:var(--cls, var(--surface-3));color:#1b1a18;font:800 .74em / 1 var(--font-ui);letter-spacing:-.03em;vertical-align:.08em;box-shadow:inset 0 -2px #0000002e}.analysis-status{position:relative;display:inline-block;overflow:hidden;isolation:isolate;padding:2px 9px;border-radius:999px;font-size:var(--fs-xs);font-weight:700;white-space:nowrap;background:var(--surface-2);color:var(--text-2)}.analysis-status-done{background:var(--ok-wash);color:var(--ok)}.analysis-status-error{background:var(--err-wash);color:var(--err)}.analysis-status-queued,.analysis-status-running{color:var(--text);background:var(--surface-2)}.analysis-status-queued:before,.analysis-status-running:before,.analysis-progress:before{content:"";position:absolute;top:0;right:-15px;bottom:0;left:-15px;z-index:-1;background:var(--hatch)}.analysis-status-running:before,.analysis-progress:before{animation:hatch-run .9s linear infinite}@keyframes hatch-run{to{transform:translate(9.9px)}}[role=group]:has(>button[aria-pressed]){display:inline-flex;flex-wrap:wrap;gap:2px;width:fit-content;padding:3px;border-radius:var(--r-m);background:var(--bg-deep)}[role=group]:has(>button[aria-pressed])>button{min-height:30px;padding:4px 12px 5px;border-radius:var(--r-s);background:transparent;box-shadow:none;color:var(--text-2)}[role=group]:has(>button[aria-pressed])>button:hover:not(:disabled){background:var(--surface-2);color:var(--text)}[role=group]:has(>button[aria-pressed])>button[aria-pressed=true]{background:var(--surface-3);color:#fff;box-shadow:inset 0 -2px #00000040}.stats-train{display:inline-flex;align-items:center;min-height:30px;padding:4px 12px 6px;border-radius:var(--r-m);background:var(--btn);box-shadow:inset 0 -3px 0 var(--btn-lip);color:#fff;font-size:var(--fs-sm);font-weight:700;text-decoration:none;white-space:nowrap}.stats-train:hover{background:var(--btn-hover);color:#fff;text-decoration:none}.stats-train-disabled{display:inline-block;padding:2px 9px;border-radius:999px;font-size:var(--fs-xs);color:var(--text-3);background:var(--hatch),var(--surface-2)}.move-review-unreliable,.analysis-stale{margin:var(--s-2) 0;padding:8px 12px;border-radius:var(--r-m);background:var(--hatch),var(--warn-wash);color:var(--warn);font-size:var(--fs-sm);font-weight:700;max-width:none}.training-rating-chart,.stats-progress-chart,.time-management figure{max-width:100%;overflow-x:auto}.home-dock{display:grid;gap:var(--s-4);grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);grid-template-areas:"today side" "games side";align-items:start}.home-today{grid-area:today}.home-games{grid-area:games}.home-side{grid-area:side;display:grid;gap:var(--s-4);align-content:start}.home-user{position:absolute;top:20px;right:18px;margin:0;font-size:var(--fs-xs);font-weight:700;color:var(--text-3)}.home-bill{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-4) var(--s-5);padding:var(--s-4) 20px;border-radius:var(--r-m);background:var(--bg-deep)}.home-bill-loading{min-height:104px;margin:0;max-width:none;background:var(--hatch),var(--bg-deep)}.home-bill-figure{display:flex;align-items:center;gap:var(--s-4);margin:0}.home-bill-number{font:800 var(--fs-bill) / .9 var(--font-ui);letter-spacing:-.04em;color:#fff}.home-bill-label{max-width:12ch;font-size:var(--fs-lg);font-weight:800;line-height:1.15;color:var(--text-2)}.home-bill-action{min-height:52px;padding:10px 26px 14px;font-size:var(--fs-lg);border-radius:var(--r-m)}.home-bill-action .icon{width:18px;height:18px;transition:transform var(--t-med) var(--ease-out)}.home-bill-action:hover .icon{transform:translate(3px)}.home-bill-quiet{margin:var(--s-2) 0 0;color:var(--text-3);font-weight:700}.home-bill-detail{margin:var(--s-3) 0 0;font-size:var(--fs-sm);color:var(--text-3)}.home-bill-next{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-2);max-width:none;margin:var(--s-3) 0 0;padding:8px 8px 8px 14px;border-radius:var(--r-m);background:var(--surface-2);font-size:var(--fs-sm);font-weight:600}.home-figures{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-2);margin-top:var(--s-3)}.home-figures>div{padding:12px 14px;border-radius:var(--r-m);background:var(--bg-deep)}.home-figures dt{font-size:var(--fs-xs);font-weight:700;color:var(--text-3)}.home-figures dd{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 6px;margin:4px 0 0}.figure{font:800 var(--fs-2xl) / 1.05 var(--font-ui);letter-spacing:-.03em;color:#fff}.figure-unit{font-size:var(--fs-sm);font-weight:700;color:var(--text-3)}.figure-note{padding:1px 8px;border-radius:999px;font-size:var(--fs-xs);font-weight:700;background:var(--hatch),var(--surface-2);color:var(--text-2)}.figure-inline{font-weight:800;color:var(--text)}.home-muted{min-height:1.4em;color:var(--text-3);font-size:var(--fs-sm)}.home-empty{max-width:none;margin:0;padding:var(--s-4);border-radius:var(--r-m);background:var(--bg-deep);color:var(--text-2);font-size:var(--fs-sm)}.home-game-list{list-style:none;margin:0;padding:0}.home-game{display:grid;grid-template-columns:7.5rem minmax(7rem,1fr) minmax(0,1.3fr) auto 4.5rem 6rem;align-items:center;gap:4px var(--s-3);margin:0;padding:10px 12px;border-radius:var(--r-s);font-size:var(--fs-sm)}.home-game:nth-child(odd){background:var(--row-alt)}.home-game:hover{background:var(--surface-2)}.home-game+.home-game{margin-top:0}.home-game-skeleton{height:42px;background:var(--hatch),var(--row-alt)}.home-game-result{display:inline-flex;align-items:center;gap:8px;font-weight:800}.home-game-result:before{content:"";flex:none;width:14px;height:14px;border-radius:3px;background:var(--surface-3)}.home-game-win .home-game-result:before{background:var(--accent)}.home-game-loss .home-game-result:before{background:transparent;box-shadow:inset 0 0 0 2px #e05a44}.home-game-draw .home-game-result:before{background:linear-gradient(135deg,#a8a6a3 50%,transparent 50%);box-shadow:inset 0 0 0 2px #a8a6a3}.home-game-opponent{font-weight:800;font-size:var(--fs-md);color:var(--text);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-game-opponent:hover{color:var(--accent);text-decoration:none}.home-game{position:relative}.home-game-opponent:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0}.home-game-meta{color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-game-accuracy,.home-game-date{text-align:right;white-space:nowrap}.home-game-accuracy{font-weight:800}.home-game-date{color:var(--text-3);font-size:var(--fs-xs)}.home-plan{margin-top:var(--s-4)}.home-plan-loading{min-height:120px;margin-top:var(--s-4);border-radius:var(--r-m);background:var(--hatch),var(--bg-deep)}.home-plan-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-2) var(--s-4)}.home-plan-head h3{margin:0;font-size:var(--fs-md);font-weight:800}.home-plan-budgets{display:flex;flex-wrap:wrap;gap:2px}.home-plan-steps{display:grid;gap:4px;margin:var(--s-3) 0 0;padding:0;list-style:none;counter-reset:plan-step}.home-plan-step{display:grid;grid-template-columns:1.8em minmax(0,1fr) auto auto auto;align-items:center;gap:var(--s-3);margin:0;padding:8px 10px;border-radius:var(--r-m);background:var(--bg-deep);counter-increment:plan-step}.home-plan-step:before{content:counter(plan-step);display:grid;place-items:center;width:1.6em;height:1.6em;border-radius:50%;background:var(--surface-2);color:var(--text-2);font-size:var(--fs-xs);font-weight:800}.home-plan-step-done:before{content:"✓";background:var(--btn);color:#fff}.home-plan-step-done .home-plan-step-label{color:var(--text-3);text-decoration:line-through}.home-plan-step-label{font-weight:700}.home-plan-step-reason{display:block;font-size:var(--fs-sm);font-weight:400;color:var(--text-3)}.home-plan-step-count,.home-plan-step-time{font-size:var(--fs-sm);color:var(--text-3);white-space:nowrap}.home-plan-step-done .home-plan-step-time{grid-column:span 2}.home-plan-rules{margin:var(--s-3) 0 0;font-size:var(--fs-xs);color:var(--text-3)}.home-plan-complete{margin:var(--s-3) 0 0;font-weight:800;color:var(--ok)}@media (max-width: 720px){.home-plan-step{grid-template-columns:1.8em minmax(0,1fr) auto}.home-plan-step-time{display:none}.home-plan-step>:is(a,button){grid-column:2 / -1;justify-self:start}}.home-digest-summary{margin:0;font-size:var(--fs-lg);font-weight:800;line-height:1.3}.home-digest-pending{margin:var(--s-2) 0 0;font-size:var(--fs-sm);color:var(--text-3)}.home-digest-actions{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-top:var(--s-3)}.home-weakness-body{display:grid;gap:var(--s-1);justify-items:start}.home-weakness-kind{margin-left:6px;padding:1px 8px;border-radius:999px;background:var(--surface-2);font-size:var(--fs-xs);font-weight:700;color:var(--text-2);white-space:nowrap;vertical-align:.15em}.home-weakness-title{margin:0;font-size:var(--fs-lg);font-weight:800;line-height:1.3}.home-weakness-detail{margin:0 0 var(--s-2);font-size:var(--fs-sm);color:var(--text-3)}.home-weakness-basis{margin:var(--s-2) 0 0;font-size:var(--fs-xs);color:var(--text-3)}.home-more{margin:var(--s-3) 0 0;padding-top:var(--s-3);border-top:1px solid var(--line);font-size:var(--fs-sm);font-weight:700}.home-progress .home-figures{margin-top:0}@media (max-width: 1080px){.home-dock{grid-template-columns:minmax(0,1fr);grid-template-areas:"today" "side" "games"}}@media (max-width: 720px){.home-game{grid-template-columns:auto minmax(0,1fr) auto}.home-game-meta{grid-column:1 / -1;grid-row:2}.home-game .analysis-status{grid-column:1;grid-row:3;justify-self:start}.home-game-date{grid-column:2 / -1;grid-row:3}.home-bill-number{font-size:3.5rem}.home-bill-action{flex:1 1 100%}}.app-main>main.game-viewer{max-width:none;padding-top:var(--s-3);gap:var(--s-3)}.game-viewer:has(>.review-dock)>h1{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.viewer-loading{color:var(--text-3)}.review-dock{--side-w: clamp(340px, 30vw, 500px);--board: max( 280px, min( calc(100vh - 196px) , calc(100vw - var(--sidebar-w) - var(--side-w) - 110px)) );display:grid;gap:20px;grid-template-columns:calc(var(--board) + 34px) var(--side-w);align-items:start;justify-content:center}.review-board{min-width:0}.review-board-row{display:grid;grid-template-columns:26px minmax(0,1fr);gap:0 8px;min-width:0}.review-board-row>.board{grid-column:2;grid-row:1;width:100%;max-width:none}.review-board-row>.eval-bar-panel{display:contents}.review-board-row .eval-bar{grid-column:1;grid-row:1;height:auto}.review-board-row>.board-player{grid-column:2;grid-row:2;margin:0}.review-board-row>.move-controls{grid-column:2;grid-row:3;margin:4px 0 10px}.review-board-row .eval-bar-details,.review-board-row>p{grid-column:2;grid-row:4}.review-board-row .eval-bar-details>p[role]{margin:0;font-family:var(--font-ui);font-size:var(--fs-sm);color:var(--text-3)}.review-board-row>p{margin:0;max-width:none;padding:8px 12px;border-radius:var(--r-m);font-size:var(--fs-sm);color:var(--text-3);background:var(--hatch),var(--surface)}.review-board-tools{margin:var(--s-3) 0 0 34px}.board-player{display:flex;align-items:center;gap:10px;min-height:40px;margin:0 0 0 34px;padding:4px 0;font-size:var(--fs-md)}.board-player-swatch{flex:none;width:30px;height:30px;border-radius:var(--r-s);background:#f0efed;box-shadow:inset 0 -3px #00000026}.board-player[data-color=black] .board-player-swatch{background:#1b1a18;box-shadow:inset 0 0 0 1px var(--line-strong),inset 0 -3px #0006}.board-player-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:800}.board-player-elo{color:var(--text-3);font-size:var(--fs-sm);font-weight:600}.board-player-you{padding:1px 8px;border-radius:999px;background:var(--accent-soft);color:#b2dc80;font-size:var(--fs-xs);font-weight:800}.board-player .board-player-captured{display:inline-flex;align-items:center;gap:4px;position:static;width:auto;height:auto;margin-left:4px;box-sizing:border-box}.board-player-captured-group{display:inline-flex}.board-player .board-player-captured piece{position:static;display:inline-block;flex:none;width:20px;height:20px;background-size:cover;pointer-events:none;will-change:auto}.board-player-captured-group piece+piece{margin-left:-11px}.board-player-advantage{color:var(--text-3);font-size:var(--fs-sm);font-weight:700}.move-controls,div[role=group].move-controls{display:grid;width:auto;padding:0;background:none;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;margin:6px 0 6px 34px}div[role=group].move-controls>button{min-width:0;border-radius:var(--r-m);box-shadow:var(--lip);min-height:42px;padding:0 8px 3px;background:var(--surface-2);color:var(--text-2)}div[role=group].move-controls>button:hover:not(:disabled){background:var(--surface-3);color:#fff}.move-controls button:disabled{opacity:.4}div[role=group].move-controls>.move-controls-play[aria-pressed=false]{box-shadow:var(--lip);background:var(--surface-2)}div[role=group].move-controls>.move-controls-play[aria-pressed=true]{background:var(--btn);color:#fff;box-shadow:inset 0 -3px 0 var(--btn-lip)}.review-side{position:sticky;top:var(--s-3);display:flex;flex-direction:column;gap:var(--s-3);max-height:calc(100vh - 2 * var(--s-3));overflow-y:auto;overflow-x:hidden;padding:0 16px 16px!important;scrollbar-width:thin}main section.review-side>*{margin:0}main section.review-side>h2.review-side-title{position:sticky;top:0;z-index:3;display:flex;align-items:center;gap:10px;margin:0 -16px!important;padding:14px 16px;background:var(--surface);border-bottom:1px solid var(--line);font-size:var(--fs-lg)}.review-side-title svg{flex:none}main section.review-side section.move-review{margin:0;padding:14px 16px;border:0;border-radius:var(--r-m);background:var(--surface-2);box-shadow:var(--lip);animation:review-in .32s var(--ease-out)}@keyframes review-in{0%{opacity:0;transform:translateY(6px)}}.move-review>p{max-width:none}.move-review-headline{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;margin:0 0 var(--s-2);font-size:var(--fs-lg);font-weight:800}.move-review-headline strong{font-size:1.1em;color:#fff}.move-review-headline .cls-chip{font-size:.82em;min-width:1.9em;height:1.9em}.move-review-comment{font-size:var(--fs-md);color:var(--text)}.move-review-time,.move-review-best{font-size:var(--fs-sm);color:var(--text-2)}.move-review-best strong{color:var(--ok)}.move-review-figures{display:grid;grid-template-rows:auto auto;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:2px var(--s-2);margin-top:var(--s-3);padding-top:var(--s-3);border-top:1px solid var(--line)}.move-review-figures dt{font-size:var(--fs-xs);font-weight:700;color:var(--text-3)}.move-review-figures dd{margin:0;font:800 var(--fs-lg) / 1.2 var(--font-ui);color:#fff}.eval-chart figcaption{margin-bottom:6px}.eval-chart-plot{border-radius:var(--r-m);overflow:hidden;background:#403d39;cursor:pointer;line-height:0}.review-notation{flex:none;max-height:300px;overflow:auto;border-radius:var(--r-m);background:var(--bg-deep)}.review-notation table{font-size:14px}.review-notation tbody td{padding:2px 3px;border-bottom:0}.review-notation tbody tr:nth-child(odd)>td{background:var(--row-alt)}.review-notation tbody tr:hover>td,.review-notation tbody tr:nth-child(odd):hover>td{background:inherit}.review-notation tbody tr:nth-child(odd):hover>td{background:var(--row-alt)}.review-notation tbody td:first-child{width:3.4ch;padding:0 6px 0 12px;text-align:right;color:var(--text-3);font-size:13px;font-weight:700}.review-notation td:not(:first-child){width:50%}.move{display:flex;justify-content:flex-start;align-items:center;width:100%;min-height:30px;padding:3px 8px;gap:0;border-radius:var(--r-s);background:transparent;box-shadow:none;color:var(--text);font:700 14px / 1.2 var(--font-ui);text-align:left}.move:hover:not(:disabled){background:var(--surface-2)}.move:active:not(:disabled){transform:none;box-shadow:none}.move-current,.move-current:hover:not(:disabled){background:var(--surface-3);color:#fff;box-shadow:inset 0 -2px #0000004d;font-weight:800}.move .move-classification{font-size:10.5px;min-width:1.9em;height:1.9em}.review-controls{padding-top:var(--s-3);border-top:1px solid var(--line)}.review-controls-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2)}.review-controls-row label{flex:1 1 100%}.review-controls-row select{flex:1 1 12rem;min-width:0}.review-controls-row .button-primary{flex:1 1 100%;min-height:46px;font-size:var(--fs-md)}.review-controls p{max-width:none}.analysis-estimate,.analysis-timings{margin:8px 0 0;font-size:var(--fs-xs);color:var(--text-3)}.analysis-progress{position:relative;overflow:hidden;isolation:isolate;margin:var(--s-2) 0 0;padding:8px 12px;border-radius:var(--r-m);background:var(--surface-2);font-size:var(--fs-sm);font-weight:700}.server-analysis{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2);margin-top:var(--s-3);font-size:var(--fs-sm);color:var(--text-2)}.server-analysis p{margin:0}main section.review-side section.game-summary{margin:0}.game-summary>p{font-size:var(--fs-sm)}.game-summary table{margin-bottom:var(--s-3)}.review-side .table-scroll{overflow:visible}.review-side .table-scroll>table{min-width:0}.review-side .game-summary :is(th,td){padding:7px 6px;white-space:normal}.game-summary-accuracy tbody td:nth-child(2){font-size:var(--fs-lg);font-weight:800;color:#fff}.game-summary-classes{border-radius:var(--r-m);background:var(--bg-deep);overflow:hidden}.game-summary-classes caption{background:var(--surface)}.game-summary-classes thead th{position:static}.game-summary-classes td{text-align:center;font-weight:800}.game-summary-classes th[scope=row]{font-weight:700;white-space:nowrap}.game-summary-moments h3{margin-top:0}.game-summary-moments ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}.game-summary-moments li{margin:0}.game-summary-moments button{width:100%;justify-content:flex-start;min-height:36px;padding:6px 10px;background:var(--bg-deep);box-shadow:none;font:600 var(--fs-sm) / 1.3 var(--font-ui);text-align:left;white-space:normal}.game-summary-moments button:hover:not(:disabled){background:var(--surface-2)}.review-actions{display:flex;flex-wrap:wrap;gap:var(--s-2)}.review-actions>button{flex:1 1 auto}.review-actions>:not(button){flex:1 1 100%}.replay-verdict p{font-weight:700}.viewer-paste{display:grid;gap:10px;justify-items:start;max-width:820px}.viewer-paste textarea{width:100%}@media (max-width: 980px){.review-dock{--board: min(calc(100vw - var(--sidebar-w) - 100px), calc(100vh - 196px) );grid-template-columns:minmax(0,calc(var(--board) + 34px))}.review-side{position:static;max-height:none;overflow:visible}}@media (max-width: 760px){.review-dock{--board: calc(100vw - 58px) }}.board-room{--room-side: clamp(300px, 30vw, 440px);--room-board: max( 280px, min(720px, calc(100vh - 150px) , calc(100vw - var(--sidebar-w) - var(--room-side) - 110px)) );display:grid;grid-template-columns:var(--room-board) var(--room-side);gap:var(--s-5);align-items:start;justify-content:start}main section:has(>.board-room),main section:has(>.board-room) section:has(>.board-room){padding:0;margin-top:var(--s-3);border:0;background:none;box-shadow:none;overflow:visible}main>section:has(>.board-room){margin-top:0}.board-room-stage{display:grid;gap:var(--s-3);min-width:0}.board-room-stage>.board{width:100%;max-width:none;margin:0}.board-room-side{position:sticky;top:var(--s-3);display:flex;flex-direction:column;gap:var(--s-3);min-width:0;max-height:calc(100vh - 2 * var(--s-3));overflow-y:auto;padding:18px;border-radius:var(--r-m);background:var(--surface);box-shadow:var(--shadow-panel);scrollbar-width:thin}.board-room-side>*{margin:0}.board-room-side select{max-width:100%}.board-room-side>h2:first-child{font-size:var(--fs-lg);font-weight:800;color:#fff}@media (max-width: 980px){.board-room{--room-board: min(calc(100vw - var(--sidebar-w) - 64px), calc(100vh - 150px) );grid-template-columns:minmax(0,var(--room-board))}.board-room-side{position:static;max-height:none;overflow:visible}}@media (max-width: 760px){.board-room{--room-board: calc(100vw - 32px) }}@media (min-width: 900px){main>section:has(>.board){display:grid;grid-template-columns:minmax(300px,min(560px,calc(100vh - 160px))) minmax(260px,1fr);column-gap:var(--s-5);row-gap:0;align-items:start;align-content:start}main>section:has(>.board)>*{grid-column:2;margin-bottom:var(--s-3)}main>section:has(>.board)>h2{grid-column:1 / -1;grid-row:1}main>section:has(>.board)>.board{grid-column:1;grid-row:2 / span 16;max-width:none;margin-bottom:0}}main>section:has(>.board) select{max-width:100%}main>section:has(>.board){overflow:visible}main>section:has(>.board)>.board{width:100%;min-width:0}.puzzle-verdict p{margin:0 0 4px;font-weight:800}.puzzle-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:var(--s-2)}.puzzle-continuation,.endgame-moves{font-size:var(--fs-sm);font-weight:700}.puzzle-themes{font-size:var(--fs-sm);color:var(--text-3)}.calculation-lines{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-4)}.calculation-line ol{margin:0;padding-left:2.2em;font-size:var(--fs-sm);font-weight:700}.calculation-line-title{margin:0 0 4px;font-weight:800}.calculation-mismatch{color:var(--err)}.puzzle-report{margin-top:var(--s-2);font-size:var(--fs-sm)}.puzzle-report fieldset{display:grid;gap:8px;margin:0;padding:var(--s-3)}.puzzle-report input[type=text]{width:100%}.puzzle-report-actions{display:flex;flex-wrap:wrap;gap:8px}.endgame-verdict p{margin:0 0 4px;font-size:var(--fs-sm)}.games-list-page>details{padding:6px 18px;border-radius:var(--r-m);background:var(--surface);box-shadow:var(--shadow-panel)}.games-list-page>details[open]{padding-bottom:18px}.games-list-page>details form{display:grid;gap:8px;justify-items:start;margin-top:8px}.games-list-page>form,.puzzle-filters{display:flex;flex-wrap:wrap;align-items:center;gap:10px 8px;padding:12px 16px;border-radius:var(--r-m);background:var(--surface);box-shadow:var(--shadow-panel)}.games-list-page>form>label{margin-left:8px}.games-list-page>form>label:first-child{margin-left:0}.games-list-page>form input[type=search]{width:14rem}.games-list-page>form fieldset{display:inline-flex;align-items:center;gap:8px;padding:4px 12px 8px}.games-list-page>form input[type=number]{width:5.5rem}.games-list-analysis{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.games-list-analysis>p{margin:0;font-size:var(--fs-sm);color:var(--text-2)}.analysis-queue{flex:1 1 100%;font-size:var(--fs-sm)}.analysis-queue:not(:empty){padding:10px 14px;border-radius:var(--r-m);background:var(--surface)}.analysis-queue ul,.analysis-queue ol{margin:4px 0 0}.games-list-row{cursor:pointer}.games-list-row:nth-child(odd)>*{background:var(--row-alt)}.games-list-row:hover>*{background:var(--surface-2)}.games-list-row td:nth-child(2) a{font-weight:800;color:var(--text)}.games-list-row td:nth-child(2) a:hover{color:var(--accent)}.games-list-row td:nth-child(8),.games-list-row td:nth-child(9){white-space:nowrap;font-weight:700}.games-list-pagination{display:flex;align-items:center;justify-content:flex-end;gap:var(--s-2);font-size:var(--fs-sm);font-weight:700}.puzzle-filters label:not(:first-child){margin-left:8px}.puzzle-list{list-style:none;margin:0;padding:8px;columns:2 22rem;column-gap:var(--s-4);border-radius:var(--r-m);background:var(--surface);box-shadow:var(--shadow-panel)}.puzzle-list li{break-inside:avoid;margin:0;padding:10px 12px;border-radius:var(--r-s);font-size:var(--fs-sm);color:var(--text-3)}.puzzle-list li:hover{background:var(--surface-2)}.puzzle-list li a{font-weight:800;color:var(--text);margin-right:6px}main:has(>.puzzle-list)>button{justify-self:start}.training-note,.stats-note,.time-management-note{font-size:var(--fs-sm);color:var(--text-3)}.training-history{font-size:var(--fs-sm)}.monthly-group h4{margin-block:.75rem .25rem}.monthly-group ul{margin:0;padding-inline-start:1.25rem}.monthly-focus{font-weight:700}.effect-verdict{white-space:normal}.training-attempt-result{font-weight:800}.stats-weaknesses{list-style:none;margin:0;padding:0;display:grid;gap:4px}.stats-weaknesses li{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin:0;padding:10px 12px;border-radius:var(--r-m);background:var(--bg-deep);font-size:var(--fs-sm);color:var(--text-2)}.stats-weaknesses li strong{font-size:var(--fs-md);color:var(--text)}.stats-weaknesses .stats-train,.stats-weaknesses .stats-train-disabled{margin-left:auto}.stats-unjudged ul{margin:0;padding-left:var(--s-3);font-size:var(--fs-sm);color:var(--text-3)}.cause-profile-headline{font-size:var(--fs-lg);font-weight:800}.cause-profile-family th{font-weight:800}.cause-profile-cause th{padding-left:var(--s-5);font-weight:400;color:var(--text-2)}.stats-period{margin-bottom:var(--s-2)}.about-page>p,.about-page section p,.about-page li{max-width:70ch;line-height:1.65;color:var(--text-2)}.about-page>section{padding-bottom:var(--s-5)}.about-page code{display:inline-block;padding:6px 12px;border-radius:var(--r-s);background:var(--bg-deep);line-height:1.5}.about-page td:nth-child(2){width:4rem}.accounts-page form{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.accounts-page ul{padding-left:0;list-style:none}.accounts-page li{padding:10px 0;border-bottom:1px solid var(--line)}@media (max-width: 760px){.games-list-page>form,.puzzle-filters{display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:8px 10px}.games-list-page>form>label,.puzzle-filters label:not(:first-child){margin-left:0}.games-list-page>form input[type=search]{width:100%}.games-list-page>form fieldset{grid-column:1 / -1;display:grid;grid-template-columns:max-content minmax(0,1fr)}.games-list-page>form input[type=number]{width:100%}}.repertoire-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:var(--s-3)}.repertoire-head>p{flex:1 1 100%;margin:0;color:var(--text-2);font-size:var(--fs-sm)}.repertoire-controls{display:flex;flex-wrap:wrap;gap:8px}.repertoire-explorer>nav{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:var(--s-3)}.repertoire-explorer>nav button{min-height:30px;padding:4px 10px 6px}.repertoire-explorer>nav button[aria-current=step]{background:var(--surface-3);color:#fff}.repertoire-board{max-width:520px;margin-bottom:var(--s-3)}.repertoire-explorer td button{min-height:30px;padding:4px 12px 6px}@media (min-width: 1180px){main>section.repertoire-explorer{display:grid;grid-template-columns:minmax(300px,min(720px,calc(100vh - 120px),56%)) minmax(0,1fr);grid-template-rows:auto auto auto 1fr;column-gap:var(--s-5);align-items:start;isolation:isolate;padding:0;background:none;box-shadow:none;overflow:visible}.repertoire-explorer:before{content:"";grid-column:2;grid-row:1 / 5;align-self:stretch;z-index:-1;border-radius:var(--r-m);background:var(--surface);box-shadow:var(--shadow-panel)}.repertoire-explorer>*{grid-column:2;margin-inline:18px}.repertoire-explorer>.repertoire-head{grid-row:1;margin-top:18px}.repertoire-explorer>nav{grid-row:2}.repertoire-explorer>nav+p{grid-row:3}.repertoire-explorer>:last-child{grid-row:4;margin-bottom:18px}.repertoire-explorer>table{width:calc(100% - 36px)}.repertoire-explorer>table :is(th,td){padding-inline:8px;white-space:normal}.repertoire-explorer>.repertoire-board{grid-column:1;grid-row:1 / 5;max-width:none;margin:0}}@media (max-width: 760px){.side-link{white-space:nowrap}}.training-rating-chart,.stats-progress-chart{overflow:visible}.training-rating-chart .recharts-wrapper,.stats-progress-chart .recharts-wrapper{max-width:100%;height:auto!important}.training-rating-chart .recharts-surface,.stats-progress-chart .recharts-surface{width:100%;height:auto}@media (max-width: 760px){main>section table :is(th,td){padding:6px;white-space:normal}}main section.scoreboard,.scoreboard{display:grid;grid-template-columns:minmax(230px,1.7fr) repeat(2,minmax(150px,1fr)) auto;gap:8px;margin:0 0 var(--s-3);padding:8px;border-radius:var(--r-l);background:var(--bg-deep);box-shadow:none;color:var(--text)}.dock-grid>.scoreboard{margin:0 0 var(--s-4)}.scoreboard-loading{min-height:78px;background-image:var(--hatch)}.sb-group{position:relative;display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:12px;row-gap:2px;min-width:0;padding:10px 14px;border-radius:var(--r-m);background:var(--surface)}.sb-group>.icon{grid-row:1 / span 2;width:24px;height:24px;color:var(--text-3)}.sb-readout{display:flex;align-items:baseline;gap:8px;margin:0;min-width:0}.sb-figure{font:800 1.75rem / 1 var(--font-ui);font-variant-numeric:tabular-nums;letter-spacing:-.03em;color:#fff}.sb-label{font-size:var(--fs-xs);font-weight:700;color:var(--text-3)}.sb-caption{margin:0;font-size:var(--fs-xs);color:var(--text-3)}.sb-caption .figure-inline{color:var(--text)}.sb-level{grid-template-columns:auto 1fr}.sb-level .sb-readout{flex-direction:column;align-items:flex-start;gap:0;grid-row:1 / span 2}.sb-level .sb-figure{font-size:2.25rem;color:#f7c631}.sb-xp{position:relative;display:grid;gap:6px;grid-row:1 / span 2}.sb-gauge{display:grid;grid-template-columns:repeat(20,1fr);gap:2px;height:14px;padding:2px;border-radius:999px;background:var(--bg-deep);overflow:hidden}.sb-gauge span{background:transparent}.sb-gauge span.sb-cell-lit{background:var(--accent);box-shadow:inset 0 -2px #0000002e;animation:sb-cell .26s var(--ease-out) both}.sb-gauge span.sb-cell-lit:first-child{border-radius:999px 0 0 999px}@keyframes sb-cell{0%{background:#fff}}.sb-gain{position:absolute;right:0;bottom:100%;font:800 var(--fs-md) / 1 var(--font-ui);color:var(--accent);pointer-events:none;animation:sb-gain 1.4s var(--ease-out) forwards}@keyframes sb-gain{0%{opacity:0;transform:translateY(8px)}15%{opacity:1;transform:translateY(0)}70%{opacity:1}to{opacity:0;transform:translateY(-14px)}}.sb-hot>.icon{color:#ffa459;animation:sb-flicker .9s ease-in-out infinite alternate;transform-origin:50% 100%}.sb-hot .sb-figure{color:#ffa459}.sb-hot .sb-label{color:#ffd0a6}@keyframes sb-flicker{0%{transform:scale(1) skew(0)}50%{transform:scale(1.08,1.14) skew(-3deg)}to{transform:scale(.96,1.04) skew(3deg)}}.sb-today>.icon{color:var(--accent)}.scoreboard .sb-sound{align-self:stretch;min-width:44px;padding:0 12px}.sb-session{grid-column:1 / -1;padding:10px 14px 12px;border-radius:var(--r-m);background:var(--surface)}.loop-caption{margin:0 0 8px;font-size:var(--fs-xs);font-weight:700;color:var(--text-3)}.loop-cells{display:flex;flex-wrap:wrap;gap:4px;margin:0;padding:0;list-style:none}.loop-cell{width:16px;height:16px;margin:0;border-radius:4px;background:var(--surface-2) var(--hatch)}.loop-cell+.loop-cell{margin-top:0}.loop-solved{background:var(--accent)}.loop-missed{background:#fa412d}.loop-current{outline:2px solid #ffffff;outline-offset:2px;animation:loop-current 1.1s ease-in-out infinite alternate}@keyframes loop-current{to{outline-color:var(--surface-3)}}@media (max-width: 860px){main section.scoreboard,.scoreboard{grid-template-columns:1fr 1fr auto}.sb-level{grid-column:1 / -1}}main section section.puzzle-solver{margin-top:var(--s-3);padding:0;border:0}.puzzle-solver{display:grid;grid-template-areas:"brief" "stage" "verdict" "side";gap:var(--s-3) var(--s-5);align-items:start}@media (min-width: 900px){.puzzle-solver{position:relative;isolation:isolate;grid-template-columns:minmax(300px,min(720px,calc(100vh - 150px))) minmax(300px,440px);grid-template-areas:"stage brief" "stage verdict" "stage side";grid-template-rows:auto auto 1fr;row-gap:var(--s-4)}.puzzle-solver:before{content:"";grid-column:2;grid-row:1 / -1;align-self:stretch;z-index:-1;border-radius:var(--r-m);background:var(--surface);box-shadow:var(--shadow-panel)}.puzzle-solver>.puzzle-brief,.puzzle-solver>.puzzle-verdict,.puzzle-solver>.puzzle-side{margin-inline:18px}.puzzle-solver>.puzzle-brief{padding-top:18px;flex-direction:column;align-items:flex-start}.puzzle-solver>.puzzle-side{padding-bottom:18px}main>section.puzzle-solver,main>section:has(.puzzle-solver){background:none;box-shadow:none;padding:0;overflow:visible}}.puzzle-brief{grid-area:brief;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px var(--s-4)}.puzzle-turn{display:flex;align-items:center;gap:10px;margin:0;font-size:var(--fs-lg);font-weight:800}.puzzle-turn-swatch{flex:none;width:22px;height:22px;border-radius:var(--r-s);background:#f0efed;box-shadow:inset 0 -3px #00000026}.puzzle-turn[data-color=black] .puzzle-turn-swatch{background:#1b1a18;box-shadow:inset 0 0 0 1px var(--line-strong),inset 0 -3px #0006}.puzzle-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px var(--s-4);margin:0;font-size:var(--fs-sm);color:var(--text-3)}.puzzle-steps{display:inline-flex;align-items:center;gap:8px;font-weight:700}.puzzle-step-cells{display:inline-flex;gap:4px}.puzzle-step-cells span{width:12px;height:12px;border-radius:50%;background:var(--surface-3)}.puzzle-step-cells .step-done{background:var(--accent)}.puzzle-step-cells .step-current{background:#fff}.puzzle-stage{grid-area:stage;min-width:0}.puzzle-stage .board{max-width:none;transition:box-shadow var(--t-med) var(--ease-out)}.stage-ok .board{box-shadow:0 0 0 4px var(--accent),0 4px 16px #00000059}.stage-err .board{box-shadow:0 0 0 4px #e5533d,0 4px 16px #00000059;animation:verdict-shake .42s var(--ease-out)}.puzzle-howto{margin:8px 0 0;font-size:var(--fs-xs);color:var(--text-3)}.puzzle-side{grid-area:side;display:flex;flex-direction:column;gap:var(--s-3);min-width:0}.puzzle-side>*{margin:0}.puzzle-keyboard{display:grid;gap:6px;font-size:var(--fs-sm);font-weight:700}.puzzle-promotion{display:flex;flex-wrap:wrap;gap:8px}.puzzle-hint{margin:8px 0 0;padding:8px 12px;border-radius:var(--r-m);background:var(--warn-wash);color:var(--warn);font-weight:800}.puzzle-solution{font-weight:700}.puzzle-verdict{grid-area:verdict;display:grid;min-width:0}@media (max-width: 899px){.puzzle-verdict{position:sticky;bottom:12px;z-index:5}}.puzzle-verdict:empty{display:none}.puzzle-verdict p{margin:0}.verdict{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:10px 14px;padding:16px 18px;border-radius:var(--r-l);animation:verdict-in .38s var(--ease-out)}.verdict-mark{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:#fff}.verdict-mark .icon{width:26px;height:26px;stroke-width:2.5}.verdict-body{display:grid;gap:2px;min-width:0}.verdict-title{font-size:1.625rem;font-weight:800;line-height:1.05;letter-spacing:-.02em;text-wrap:balance}.verdict-detail{font-size:var(--fs-md);font-weight:700}.verdict-ok{background:var(--btn);color:#fff;box-shadow:inset 0 -4px 0 var(--btn-lip),var(--shadow-panel)}.verdict-ok .verdict-mark{color:var(--btn)}.verdict-err{background:#b23a26;color:#fff;box-shadow:inset 0 -4px #6e1d10,var(--shadow-panel);animation:verdict-in .38s var(--ease-out),verdict-shake .42s .12s var(--ease-out)}.verdict-err .verdict-mark{color:#b23a26}.verdict-progress{padding:10px 14px;border-radius:var(--r-m);background:var(--ok-wash);color:var(--ok)}.verdict-progress .verdict-mark{width:28px;height:28px;background:var(--btn);color:#fff}.verdict-progress .verdict-mark .icon{width:16px;height:16px}.verdict-neutral{background:var(--surface-2);color:var(--text);box-shadow:var(--lip)}.verdict-neutral .verdict-mark{color:var(--surface-2)}.verdict-ok .verdict-mark path,.verdict-err .verdict-mark path{stroke-dasharray:24;stroke-dashoffset:24;animation:verdict-draw .36s .16s var(--ease-out) forwards}.verdict-reward{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding-top:10px;border-top:1px solid rgb(255 255 255 / .22);font-size:var(--fs-sm);font-weight:700}.verdict-reward .training-attempt-result,.verdict-reward .training-attempt-result p{margin:0;font-weight:700}.reward-xp{display:inline-flex;align-items:center;gap:6px;padding:4px 12px 4px 10px;border-radius:999px;background:#1b1a18;color:#f7c631;font:800 var(--fs-lg) / 1.1 var(--font-ui);animation:reward-pop .42s .2s var(--ease-out) both}.reward-xp .icon{width:14px;height:14px}@keyframes verdict-in{0%{transform:scale(.96);opacity:0}to{transform:none;opacity:1}}@keyframes verdict-shake{0%,to{transform:translate(0)}20%{transform:translate(-7px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(2px)}}@keyframes verdict-draw{to{stroke-dashoffset:0}}@keyframes reward-pop{0%{transform:scale(.6);opacity:0}60%{transform:scale(1.12);opacity:1}to{transform:none}}.next-action{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0}.next-action .button-primary{min-height:48px;padding-inline:26px;font-size:var(--fs-md)}.next-hint{font-size:var(--fs-xs);color:var(--text-3)}.coach{display:grid;grid-template-columns:64px 1fr;align-items:start;gap:12px}.coach-portrait{position:relative;width:64px;height:64px;border-radius:var(--r-m);background:conic-gradient(var(--sq-dark) 0 90deg,var(--sq-light) 0 180deg,var(--sq-dark) 0 270deg,var(--sq-light) 0);background-size:50% 50%;box-shadow:0 2px 8px #00000059;overflow:hidden}.coach .coach-figure{position:absolute;top:4px;right:4px;bottom:4px;left:4px;display:block}.coach .coach-figure piece{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;background-size:cover;pointer-events:none}.coach[data-mood=idle] .coach-figure{animation:coach-breathe 3.2s ease-in-out infinite}.coach[data-mood=happy] .coach-figure,.coach[data-mood=hot] .coach-figure{animation:coach-hop .62s var(--ease-out)}.coach[data-mood=sad] .coach-figure{transform:rotate(-14deg) translateY(4px);animation:coach-droop .52s var(--ease-out)}.coach[data-mood=sad] .coach-portrait{filter:saturate(.4)}.coach[data-mood=hot] .coach-portrait{box-shadow:0 0 0 3px #ffa459,0 2px 12px #ffa45966}@keyframes coach-breathe{50%{transform:translateY(-2px) rotate(-2deg)}}@keyframes coach-hop{0%{transform:none}30%{transform:translateY(-14px) rotate(-8deg)}55%{transform:translateY(0) scale(1.08,.92)}75%{transform:translateY(-5px)}to{transform:none}}@keyframes coach-droop{0%{transform:none}}.coach-bubble{position:relative;margin:0;padding:10px 14px 11px;border-radius:var(--r-m);background:#fff;color:var(--text-on-light);font-size:var(--fs-md);font-weight:600;box-shadow:0 2px 8px #0000004d;animation:coach-bubble .26s var(--ease-out);transform-origin:0 50%}.coach-bubble:after{content:"";position:absolute;top:18px;left:-7px;width:8px;height:12px;background:#fff;clip-path:polygon(100% 0,0 50%,100% 100%)}.coach-name{display:block;margin-bottom:2px;font-size:var(--fs-xs);font-weight:800;color:#3d6b22}@keyframes coach-bubble{0%{transform:scale(.94);opacity:0}}.rewards{position:fixed;top:16px;right:16px;z-index:40;display:grid;gap:8px;width:min(360px,calc(100vw - 24px));margin:0;padding:0;list-style:none}.rewards:empty{display:none}.reward{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:12px;margin:0;padding:12px 12px 12px 14px;border-radius:var(--r-l);background:var(--surface-2);box-shadow:var(--shadow-pop);animation:reward-in .36s var(--ease-out)}.reward-mark{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--btn);color:#fff}.reward-mark .icon{width:24px;height:24px}.reward-level .reward-mark{background:#f7c631;color:#1b1a18}.reward-text{display:grid;gap:2px;min-width:0}.reward-text strong{font-size:var(--fs-md)}.reward-text span{font-size:var(--fs-xs);color:var(--text-3)}.reward-close{min-width:32px;padding:0 8px}@keyframes reward-in{0%{transform:translate(24px);opacity:0}to{transform:none;opacity:1}}.badge-count{margin:0 0 var(--s-2);font-size:var(--fs-sm);font-weight:700;color:var(--text-3)}.badge-shelf{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:8px;margin:0;padding:0;list-style:none}.badge-tile{display:grid;grid-template-columns:42px 1fr;align-items:center;gap:12px;margin:0;padding:10px 12px;border-radius:var(--r-m);background:var(--bg-deep)}.badge-tile+.badge-tile{margin-top:0}.badge-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;color:#1b1a18;box-shadow:inset 0 -3px #0003}.badge-mark .icon{width:22px;height:22px}.badge-earned[data-family=check] .badge-mark{background:var(--accent)}.badge-earned[data-family=flame] .badge-mark{background:#ffa459}.badge-earned[data-family=calendar] .badge-mark{background:#96af8b}.badge-earned[data-family=loop] .badge-mark{background:#1baaa6}.badge-earned[data-family=xp] .badge-mark{background:#f7c631}.badge-locked{background:var(--row-alt)}.badge-locked .badge-mark{background:var(--surface-2) var(--hatch);color:var(--text-3);box-shadow:none}.badge-text{display:grid;gap:1px;min-width:0;font-size:var(--fs-xs);color:var(--text-3)}.badge-text strong{font-size:var(--fs-sm);color:var(--text)}.badge-status{font-weight:700}.badge-earned .badge-status{color:var(--ok)}.dock-grid>.training-practice,.dock-grid>.training-badges,.dock-grid>section:has(.puzzle-solver,.scoreboard,.board-room){grid-column:1 / -1}.training-practice .button-primary{min-height:48px;padding-inline:26px;font-size:var(--fs-md)}.training-practice>p{max-width:75ch}.practice-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 var(--s-3)}.practice-empty{padding:14px;border-radius:var(--r-m);background:var(--surface-2) var(--hatch);font-weight:700}main section section.loop-summary{display:grid;gap:var(--s-3);justify-items:start;padding:var(--s-4) 18px;border:0;border-radius:var(--r-l);background:var(--bg-deep);box-shadow:inset 0 0 0 2px var(--accent);animation:verdict-in .42s var(--ease-out)}.loop-summary>*{margin:0}.loop-summary-title{display:flex;align-items:center;gap:10px;font-size:var(--fs-2xl);font-weight:800;letter-spacing:-.02em;color:var(--ok)}.loop-summary-title .icon{width:28px;height:28px}.loop-figures{display:flex;flex-wrap:wrap;gap:8px}.loop-figures>div{min-width:140px;padding:10px 14px;border-radius:var(--r-m);background:var(--surface)}.loop-figures dt{font-size:var(--fs-xs);font-weight:700;color:var(--text-3)}.loop-figures dd{margin:0}.loop-summary-actions{display:flex;flex-wrap:wrap;gap:8px}.dock-grid>.rush-card{grid-column:1 / -1}.rush-recommended{box-shadow:inset 0 0 0 2px var(--warn),var(--shadow-panel)}.rush-flag{margin-left:10px;padding:2px 10px;border-radius:999px;font-size:var(--fs-xs);font-weight:800;vertical-align:middle;color:var(--warn);background:var(--warn-wash)}.rush-reason{font-weight:700}.rush-hud{display:flex;flex-wrap:wrap;gap:8px 24px;align-items:baseline;margin:0 0 var(--s-3)}.rush-hud>p{margin:0}.rush-hud strong{font-size:var(--fs-xl);font-variant-numeric:tabular-nums}.rush-clock strong{font-size:var(--fs-2xl)}.rush-flash{min-height:2.4em}.rush-flash .verdict{display:inline-flex;align-items:center;gap:6px;margin:0;padding:5px 12px;border-radius:999px}.rush-source{margin:0 0 var(--s-2);font-size:var(--fs-sm);color:var(--text-3)}.rush-source-general{color:var(--warn);font-weight:700}.confetti{position:fixed;top:38%;left:50%;z-index:50;width:0;height:0;pointer-events:none}.confetti-piece{position:absolute;top:0;left:0;width:var(--size);height:var(--size);border-radius:2px;opacity:0;animation:confetti-fly var(--fall) var(--delay) cubic-bezier(.2,.7,.3,1) forwards}@keyframes confetti-fly{0%{opacity:1;transform:translate(0) rotate(0)}45%{opacity:1;transform:translate(var(--dx),var(--dy)) rotate(calc(var(--spin) / 2))}to{opacity:0;transform:translate(calc(var(--dx) * 1.15),calc(var(--dy) + 320px)) rotate(var(--spin))}}@media (prefers-reduced-motion: reduce){.confetti{display:none}.verdict,.verdict-err,.stage-err .board,.coach-figure,.coach-bubble,.reward,.reward-xp,.sb-gain,.sb-hot>.icon,.sb-gauge span.sb-cell-lit,.loop-current,main section section.loop-summary{animation:none!important}.verdict-ok .verdict-mark path,.verdict-err .verdict-mark path{animation:none;stroke-dashoffset:0}.sb-gain{opacity:1}}
