.cg-wrap{box-sizing:content-box;display:block;position:relative}cg-container{width:100%;height:100%;display:block;position:absolute;top:0}cg-board{-webkit-user-select:none;user-select:none;background-size:cover;width:100%;height:100%;line-height:0;position:absolute;top:0;left:0}.cg-wrap.manipulable cg-board{cursor:pointer}cg-board square{pointer-events:none;width:12.5%;height:12.5%;position:absolute;top:0;left:0}cg-board square.move-dest{pointer-events:auto}cg-board square.last-move{will-change:transform}.cg-wrap piece{z-index:2;will-change:transform;pointer-events:none;background-size:cover;width:12.5%;height:12.5%;position:absolute;top:0;left:0}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{pointer-events:none;z-index:2;opacity:.6;width:100%;height:100%;position:relative;top:0;left:0;overflow:hidden}.cg-wrap cg-auto-pieces,.cg-wrap .cg-shapes,.cg-wrap .cg-custom-svgs,.cg-wrap .cg-shapes-below,.cg-wrap .cg-custom-below{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0;overflow:visible}.cg-wrap cg-auto-pieces{z-index:2}.cg-wrap cg-auto-pieces piece{opacity:.3}.cg-wrap .cg-shapes{opacity:.6;z-index:2;overflow:hidden}.cg-wrap .cg-shapes-below{z-index:1;overflow:hidden}.cg-wrap .cg-custom-below{z-index:1}.cg-wrap .cg-custom-svgs{z-index:9}.cg-wrap .cg-custom-svgs svg,.cg-wrap .cg-custom-below svg{overflow:visible}.cg-wrap coords{pointer-events:none;opacity:.8;font-family:sans-serif;font-size:9px;display:flex;position:absolute}.cg-wrap coords.ranks{flex-flow:column-reverse;width:12px;height:100%;top:-20px;left:4px}.cg-wrap coords.ranks.black{flex-flow:column}.cg-wrap coords.ranks.left{align-items:flex-end;left:-15px}.cg-wrap coords.files{text-transform:uppercase;text-align:center;flex-flow:row;width:100%;height:16px;bottom:-4px;left:24px}.cg-wrap coords.files.black{flex-flow:row-reverse}.cg-wrap coords coord{flex:auto}.cg-wrap coords.ranks coord{transform:translateY(39%)}.cg-wrap coords.squares{text-transform:uppercase;text-align:right;flex-flow:column-reverse;width:12.5%;height:100%;bottom:0;left:0}.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=)}@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/barlow-condensed-500.woff2)format("woff2")}@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/barlow-condensed-600.woff2)format("woff2")}@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/barlow-condensed-700.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/fonts/jetbrains-mono-var.woff2)format("woff2")}:root{--bg:#000;--panel:#0c0b12;--panel-rgb:12, 11, 18;--panel-2:#16131f;--text:#ece7ff;--text-rgb:236, 231, 255;--muted:#8d87a6;--accent:#8b5cf6;--accent-rgb:139, 92, 246;--accent-soft:#b794ff;--accent-soft-rgb:183, 148, 255;--accent-deep:#3b1a6e;--line-alpha:.55;--line-dim-alpha:.22;--line:rgba(var(--accent-rgb), var(--line-alpha));--line-dim:rgba(var(--accent-rgb), var(--line-dim-alpha));--glow-size:12px;--glow-alpha:.45;--glow:0 0 var(--glow-size) rgba(var(--accent-rgb), var(--glow-alpha));--good:#7fd8a4;--good-rgb:127, 216, 164;--bad:#e35d5d;--bad-rgb:227, 93, 93;--board:min(72vh, 560px);--board-portrait:min(72vh, 720px);--display:"Barlow Condensed", "Arial Narrow", system-ui, sans-serif;--mono:"JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;--body-font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--body-size:15px;--chamfer:10px;--fx-ribbon-left:url(/theme/fx/ribbon-left.webp);--fx-ribbon-left-pos:left -7vw top -14vh;--fx-ribbon-left-size:30vh auto;--fx-ribbon-right:url(/theme/fx/ribbon-right.webp);--fx-ribbon-right-pos:right -7vw bottom -16vh;--fx-ribbon-right-size:30vh auto;--fx-smoke:url(/theme/fx/smoke.webp);--fx-smoke-pos:right 2vw bottom -6vh;--fx-smoke-size:48vh auto;--fx-opacity:.6;--fx-grain:url(/theme/fx/grain.webp);--fx-grain-size:180px;--fx-grain-opacity:.06;--fx-ripple:url(/theme/fx/ripple.webp);--fx-ripple-opacity:1;--fx-ripple-width:124%;--fx-ripple-height:300px;--fx-ripple-lift:110px;--board-square:url(/theme/square-light.webp);--board-ghost:url(/theme/ghost-pawn.webp);--board-ghost-size:78%;--board-ghost-opacity:.55;--rematch-swap-strip:url(/theme/rematch/swap-strip.webp);--carousel-stage-h:400px;--ring-item:340px;--seek-hero-h:640px;--rematch-stage-h:600px}*{box-sizing:border-box}html{background:var(--bg)}body{min-height:100vh;color:var(--text);font-family:var(--body-font);font-size:var(--body-size);background:0 0;margin:0;overflow-x:hidden}#root{padding-top:var(--safe-area-inset-top,env(safe-area-inset-top,0px));padding-right:var(--safe-area-inset-right,env(safe-area-inset-right,0px));padding-bottom:var(--safe-area-inset-bottom,env(safe-area-inset-bottom,0px));padding-left:var(--safe-area-inset-left,env(safe-area-inset-left,0px));box-sizing:border-box}body:before{content:"";z-index:-1;pointer-events:none;background:var(--fx-ribbon-left) var(--fx-ribbon-left-pos) / var(--fx-ribbon-left-size) no-repeat, var(--fx-ribbon-right) var(--fx-ribbon-right-pos) / var(--fx-ribbon-right-size) no-repeat, var(--fx-smoke) var(--fx-smoke-pos) / var(--fx-smoke-size) no-repeat;mix-blend-mode:screen;opacity:var(--fx-opacity);position:fixed;inset:0}body:after{content:"";z-index:100;pointer-events:none;background:var(--fx-grain) repeat;background-size:var(--fx-grain-size);opacity:var(--fx-grain-opacity);mix-blend-mode:overlay;position:fixed;inset:0}button{font:inherit;color:var(--text);background:var(--panel-2);border:1px solid var(--line-dim);cursor:pointer;border-radius:4px;padding:8px 14px;transition:border-color .15s,box-shadow .15s,color .15s}button:hover{border-color:var(--accent);box-shadow:var(--glow)}button.primary{background:linear-gradient(180deg, rgba(var(--accent-rgb), .18), rgba(var(--accent-rgb), .06));border-color:var(--accent);color:#fff;font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;clip-path:polygon(8px 0,calc(100% - 8px) 0,100% 8px,100% calc(100% - 8px),calc(100% - 8px) 100%,8px 100%,0 calc(100% - 8px),0 8px);box-shadow:var(--glow);border-radius:0;font-size:.82rem;font-weight:600}button.primary:hover{background:linear-gradient(180deg, rgba(var(--accent-rgb), .32), rgba(var(--accent-rgb), .12));box-shadow:0 0 22px rgba(var(--accent-rgb), .65)}button.primary:disabled{opacity:.45;box-shadow:none;cursor:default}button.primary .diamond{color:var(--accent-soft);margin-right:6px}button.wide{width:100%;margin-top:6px;padding:12px 14px}button.ghost{background:0 0}button.danger:hover{border-color:var(--bad);color:var(--bad);box-shadow:none}input{font:inherit;color:var(--text);border:1px solid var(--line-dim);background:#00000080;border-radius:3px;width:100%;padding:7px 9px}input:focus{border-color:var(--accent);box-shadow:var(--glow);outline:none}input[type=range]{padding:0}label{color:var(--muted);font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;margin:8px 0;font-size:.78rem;display:block}label input{letter-spacing:0;text-transform:none;margin-top:4px;font-family:system-ui,sans-serif;font-size:.95rem}label b{color:var(--text)}h1{font-family:var(--display);letter-spacing:.01em;margin:0;font-size:2.6rem;font-weight:600;line-height:1}h1 .diamond,.diamond{color:var(--accent);vertical-align:middle;font-size:.5em}h2,h3{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--text);margin:0 0 8px;font-size:.8rem;font-weight:600}h2 b,h3 b{color:#fff}.muted{color:var(--muted)}.small{font-size:.85em}.good{color:var(--good)}.bad{color:var(--bad)}hr{border:0;border-top:1px solid var(--line-dim);margin:14px 0}.account-buttons{flex-wrap:wrap;align-items:center}.google-btn{white-space:nowrap;align-items:center;gap:7px;padding:8px 12px;display:inline-flex}.google-btn.ready{border-color:rgba(var(--accent-rgb), .5)}.google-btn .google-g{filter:drop-shadow(0 0 4px #ffffff40);flex:none}.modal-backdrop{z-index:150;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#000000a8;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.card.modal{width:min(420px,100%);box-shadow:0 0 40px rgba(var(--accent-rgb), .25);margin:0}.card.modal input{box-sizing:border-box;width:100%}.card{background:var(--line-dim);clip-path:polygon(var(--chamfer) 0, calc(100% - var(--chamfer)) 0, 100% var(--chamfer), 100% calc(100% - var(--chamfer)), calc(100% - var(--chamfer)) 100%, var(--chamfer) 100%, 0 calc(100% - var(--chamfer)), 0 var(--chamfer));margin-bottom:14px;padding:16px 18px;position:relative}.card:before{content:"";background:linear-gradient(180deg, rgba(var(--accent-rgb), .07), #0000 40%), var(--panel);clip-path:polygon(var(--chamfer) 0, calc(100% - var(--chamfer)) 0, 100% var(--chamfer), 100% calc(100% - var(--chamfer)), calc(100% - var(--chamfer)) 100%, var(--chamfer) 100%, 0 calc(100% - var(--chamfer)), 0 var(--chamfer));position:absolute;inset:1px}.card:after{content:"◆";color:var(--accent);text-shadow:var(--glow);font-size:9px;position:absolute;top:12px;right:16px}.card>*{position:relative}.card p{color:var(--muted);margin:4px 0 10px}.stat{color:var(--muted);margin:6px 0}.stat b{color:var(--text)}.row{align-items:flex-end;gap:12px;display:flex}.row label{flex:1}.row button{margin:8px 0}.error{color:var(--bad);margin:6px 0}.levels{margin:10px 0}.level{border:1px solid var(--line-dim);cursor:pointer;color:var(--text);text-transform:none;letter-spacing:0;border-radius:4px;margin:6px 0;padding:8px 10px;font-family:system-ui,sans-serif;font-size:.95rem;display:block}.level.on{border-color:var(--accent);background:var(--panel-2);box-shadow:var(--glow)}.level input{width:auto;margin-right:8px}.rating-change{margin-top:6px}.lobby{max-width:1160px;margin:0 auto;padding:28px 20px 40px;position:relative}.lobby-grid{grid-template-columns:minmax(0,1.15fr) minmax(320px,440px);align-items:start;gap:36px;display:grid}.hero{min-width:0}.brand{align-items:baseline;gap:14px;margin-bottom:4px;display:flex}.brand-sub{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-size:.72rem}.hero-seek{justify-content:center;margin-top:16px;display:flex}.hero-seek button{padding:12px 28px}.tagline{color:var(--muted);max-width:560px;margin:12px 4px 0;line-height:1.55}.lobby-side .card:first-child{margin-top:6px}.footer{margin:8px 4px 0}.motto{font-family:var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin:18px 4px 0;font-size:.72rem}.motto span{color:var(--accent-soft)}.seeking{max-width:520px;min-height:calc(100vh - var(--safe-area-inset-top,env(safe-area-inset-top,0px)) - var(--safe-area-inset-bottom,env(safe-area-inset-bottom,0px)));min-height:calc(100dvh - var(--safe-area-inset-top,env(safe-area-inset-top,0px)) - var(--safe-area-inset-bottom,env(safe-area-inset-bottom,0px)));flex-direction:column;align-items:stretch;padding-top:24px;padding-bottom:24px;display:flex}.seeking h1{margin-bottom:10px}.seeking>.ghost{align-self:center}.seeking.seek-skippable{cursor:pointer}.seeking>.seek-skip{font-family:var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--muted);cursor:pointer;opacity:.75;background:0 0;border:0;align-self:center;margin-top:10px;padding:4px 8px;font-size:.66rem;transition:opacity .15s,color .15s}.seeking>.seek-skip:hover,.seeking>.seek-skip:focus-visible{opacity:1;color:var(--accent)}.seek-skip kbd{font:inherit;opacity:.85;border:1px solid;border-radius:3px;margin:0 2px;padding:1px 6px}.seek-hero,.rematch-stage{flex:1 1 0;height:auto;min-height:160px}.seek-hero{max-height:min(var(--seek-hero-h), 72vw)}.rematch-stage{max-height:min(var(--rematch-stage-h), 72vw)}.seek-hero .rematch-count,.rematch-stage .rematch-count{aspect-ratio:1;z-index:1;width:auto;height:62%;margin:0 auto;position:absolute;top:19%;left:0;right:0;container-type:size}.seek-hero .rematch-count b,.rematch-stage .rematch-count b{text-shadow:0 0 24px #000000e6,0 0 6px #000000e6;font-size:44cqh}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.seek-mode{font-family:var(--display);letter-spacing:.34em;text-transform:uppercase;color:var(--text);text-shadow:0 0 18px rgba(var(--accent-rgb), .55);margin:-4px 0 2px;padding-left:.34em;font-size:1.2rem;font-weight:600;animation:.5s .1s both mode-in}.seek-mode .diamond{color:var(--accent);vertical-align:middle;text-shadow:0 0 10px var(--accent);margin:0 14px;font-size:.55em}.seek-hero{height:var(--seek-hero-h);position:relative}.seek-art{mix-blend-mode:screen;width:auto;max-width:none;height:100%;margin:0 auto;transition:filter .9s;animation:.6s both mode-in;position:absolute;bottom:0;left:0;right:0}.seek-art.square{height:116%;bottom:-12%}.seek-matched .seek-art{filter:brightness(1.18)saturate(1.1)}.seek-sign{background:var(--panel);border:1px solid var(--accent);width:min(540px,92%);box-shadow:var(--glow), inset 0 0 36px rgba(var(--accent-rgb), .08);--chamfer:18px;clip-path:polygon(var(--chamfer) 0, calc(100% - var(--chamfer)) 0, 100% var(--chamfer), 100% calc(100% - var(--chamfer)), calc(100% - var(--chamfer)) 100%, var(--chamfer) 100%, 0 calc(100% - var(--chamfer)), 0 var(--chamfer));margin:-44px auto 22px;padding:20px 26px 16px;animation:.5s .15s both mode-in;position:relative}.seek-sign-title{font-family:var(--display);letter-spacing:.38em;text-transform:uppercase;padding-left:.38em;font-size:clamp(1.35rem,6.8vw,2.4rem);font-weight:700;line-height:1.1}.seek-sign-title .diamond{color:var(--accent);vertical-align:middle;text-shadow:0 0 10px var(--accent);margin:0 18px;font-size:.4em}.seek-sign-sub{font-family:var(--mono);letter-spacing:.3em;text-transform:uppercase;color:var(--muted);margin-top:4px;padding-left:.3em;font-size:.72rem}.seek-matched .seek-sign-title .diamond{color:var(--accent-soft)}.seek-sign-opening{border-top:1px solid var(--line-dim);font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:10px;padding-top:8px;font-size:.68rem;line-height:1}.seek-sign-opening .opening-value{color:var(--text);margin-left:8px}.seek-sign-opening.rolled .opening-value{color:var(--accent-soft)}.seek-row{gap:36px}.seek-side{flex:none;width:256px}.seek-side>div{min-width:0}.seek-side b,.seek-side .small{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}@media (width<=720px){.seek-row{flex-wrap:wrap}}.swap-anim.seek-side-pawn{width:68px;height:68px;animation:1.4s steps(7,end) infinite alternate swap-frames}.seek-matched .swap-anim.seek-side-pawn{animation-play-state:paused}.seek-side .small{font-family:var(--mono);letter-spacing:.06em;font-variant-numeric:tabular-nums}.seek-side .sep{color:var(--accent-deep);margin:0 6px}.seek-matched .seek-count img{animation-play-state:paused}.seek-stage{--axis:56px;isolation:isolate;clip-path:polygon(6px 0,calc(100% - 6px) 0,100% 6px,100% calc(100% - 6px),calc(100% - 6px) 100%,6px 100%,0 calc(100% - 6px),0 6px);background:#000;flex:none;width:300px;height:120px;position:relative;overflow:hidden}.seek-stage:after{content:"";pointer-events:none;box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb), .12);position:absolute;inset:0}.seek-fog{background:radial-gradient(ellipse at 50% 48%, rgba(var(--accent-rgb), .1), transparent 60%);position:absolute;inset:0}.seek-axis{left:0;right:0;top:var(--axis);background:linear-gradient(90deg, transparent, rgba(var(--accent-rgb), .5) 15%, rgba(var(--accent-rgb), .5) 85%, transparent);height:1px;position:absolute}.seek-tick{top:var(--axis);background:rgba(var(--accent-rgb), .35);width:1px;position:absolute;translate:-50%}.seek-tick.minor{height:4px}.seek-tick.major{background:rgba(var(--accent-rgb), .6);height:9px}.seek-tick-label{top:calc(var(--axis) + 16px);font-family:var(--mono);letter-spacing:.06em;color:var(--muted);font-variant-numeric:tabular-nums;font-size:10px;position:absolute;translate:-50%}.seek-you{top:var(--axis);text-align:center;padding-bottom:6px;position:absolute;translate:-50% -100%}.seek-you .dia{color:var(--accent-soft);text-shadow:0 0 10px var(--accent-soft);font-size:11px;line-height:1;display:block}.seek-you .tag{font-family:var(--mono);letter-spacing:.18em;color:var(--muted);margin-bottom:4px;font-size:9px;display:block}.seek-bracket{top:calc(var(--axis) - 18px);background:linear-gradient(90deg, rgba(var(--accent-rgb), .16), rgba(var(--accent-rgb), .04) 40%, rgba(var(--accent-rgb), .04) 60%, rgba(var(--accent-rgb), .16));border-left:1px solid var(--accent);border-right:1px solid var(--accent);height:36px;box-shadow:0 0 18px rgba(var(--accent-rgb), .18);position:absolute;translate:-50%}.seek-bracket:before,.seek-bracket:after{content:"";border-top:1px solid var(--accent-soft);border-bottom:1px solid var(--accent-soft);width:6px;height:38px;position:absolute;top:-1px}.seek-bracket:before{left:0}.seek-bracket:after{right:0}.seek-scan{top:calc(var(--axis) - 18px);background:var(--accent-soft);width:1px;height:36px;box-shadow:0 0 10px var(--accent-soft), 0 0 22px rgba(var(--accent-rgb), .5);position:absolute;translate:-50%}.seek-blip{top:var(--axis);background:var(--muted);pointer-events:none;border-radius:50%;width:5px;height:5px;animation:1.9s ease-out forwards seek-blip;position:absolute;translate:-50% -50%}.seek-blip.near{background:var(--accent-soft);box-shadow:0 0 8px var(--accent-soft)}@keyframes seek-blip{0%{opacity:0;scale:.2}20%{opacity:.9;scale:1}to{opacity:0;scale:1.3}}.seek-opp{top:var(--axis);text-align:center;opacity:0;position:absolute;translate:-50%}.seek-opp .dot{background:var(--accent-soft);width:9px;height:9px;box-shadow:0 0 12px var(--accent-soft), 0 0 30px rgba(var(--accent-rgb), .7);border-radius:50%;margin:-4px auto 0;display:block}.seek-link{top:var(--axis);background:var(--accent-soft);height:1px;box-shadow:0 0 8px var(--accent-soft);opacity:0;transform-origin:0;position:absolute}.seek-connecting .seek-bracket,.seek-connecting .seek-scan{opacity:0}.seek-matched .seek-opp{animation:.5s ease-out .35s forwards seek-opp-in}.seek-matched .seek-link{animation:.45s ease-out .2s forwards seek-link-in}.seek-matched .seek-scan{animation:.3s ease-out forwards seek-fade}@keyframes seek-opp-in{0%{opacity:0;translate:-50% 6px}to{opacity:1;translate:-50%}}@keyframes seek-link-in{0%{opacity:0;scale:0 1}to{opacity:1;scale:1}}@keyframes seek-fade{to{opacity:0}}@media (prefers-reduced-motion:reduce){.seek-blip{animation-duration:3s}.seek-sign,.seek-mode,.seek-art{transition:none;animation:none}}.carousel{--stage-h:var(--carousel-stage-h);-webkit-user-select:none;user-select:none;position:relative}.carousel:before{content:"";z-index:-1;left:50%;top:calc(var(--stage-h) - var(--fx-ripple-lift));width:var(--fx-ripple-width);height:var(--fx-ripple-height);background:var(--fx-ripple) center / 100% 100% no-repeat;mix-blend-mode:screen;opacity:var(--fx-ripple-opacity);pointer-events:none;position:absolute;transform:translate(-50%);-webkit-mask-image:linear-gradient(#000 0 42%,#0000004d 50%,#0003 100%);mask-image:linear-gradient(#000 0 42%,#0000004d 50%,#0003 100%)}.ring-stage{height:var(--stage-h);cursor:grab;touch-action:pan-y;outline:none;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 10% 90%,#0000);mask-image:linear-gradient(90deg,#0000,#000 10% 90%,#0000)}.ring-stage:focus-visible{box-shadow:inset 0 0 0 1px var(--line-dim)}.ring-stage.dragging{cursor:grabbing}.ring{position:absolute;inset:0}.ring-item{width:var(--ring-item);height:var(--ring-item);margin:calc(var(--ring-item) * -.56) 0 0 calc(var(--ring-item) * -.5);cursor:pointer;transition:transform .55s cubic-bezier(.22,.8,.25,1),filter .55s;position:absolute;top:50%;left:50%}.ring-item.front{cursor:grab}.ring-stage.dragging .ring-item{transition:none}.ring-item img{object-fit:contain;pointer-events:none;width:100%;height:100%;display:block}.ring-arrow{border-color:var(--line-dim);width:38px;height:38px;color:var(--accent-soft);z-index:200;background:0 0;border-radius:50%;padding:0;font-size:1.5rem;line-height:1;position:absolute;top:50%;transform:translateY(-50%)}.ring-arrow.left{left:6px}.ring-arrow.right{right:6px}.mode-detail{text-align:center;margin-top:-8px;animation:.4s both mode-in}@keyframes mode-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.mode-name{font-family:var(--display);letter-spacing:.06em;text-transform:uppercase;font-size:2.4rem;font-weight:700;line-height:1}.mode-spec{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-soft);text-shadow:var(--glow);margin-top:6px;font-size:.82rem}.mode-detail p{white-space:nowrap;min-height:1.5em;color:var(--muted);margin:8px auto 0;line-height:1.5}.mode-tabs{justify-content:center;gap:6px;margin-top:14px;display:flex}.mode-tab{border:1px solid #0000;border-bottom-color:var(--line-dim);min-width:68px;color:var(--muted);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;background:0 0;border-radius:0;flex-direction:column;align-items:center;gap:2px;padding:8px 6px;font-size:.68rem;display:flex}.mode-tab .glyph{font-size:20px;line-height:1}.mode-tab:hover{box-shadow:none;color:var(--text);border-bottom-color:var(--accent)}.mode-tab.on{color:#fff;border-bottom-color:var(--accent);box-shadow:0 8px 14px -10px var(--accent)}.mode-tab-slot{display:inline-flex;position:relative}.time-flyout{z-index:5;gap:4px;display:flex;position:absolute;top:50%;left:calc(100% + 8px);transform:translateY(-50%)}.time-flyout .time-opt{animation:.34s cubic-bezier(.22,1.15,.36,1) backwards time-opt-out;animation-delay:var(--stagger,0s)}.time-flyout .time-opt:first-child{--from-x:-60px;--stagger:0s}.time-flyout .time-opt:nth-child(2){--from-x:-120px;--stagger:70ms}.time-flyout .time-opt:nth-child(3){--from-x:-180px;--stagger:.14s}@keyframes time-opt-out{0%{opacity:0;transform:translate(var(--from-x,-60px), var(--from-y,0)) scale(.82)}35%{opacity:0}to{opacity:1;transform:translate(0)scale(1)}}.time-opt{background:var(--panel);border:1px solid var(--line-dim);min-width:40px;color:var(--muted);font-family:var(--mono);border-radius:4px;flex-direction:column;align-items:center;gap:1px;padding:6px 7px;font-size:.78rem;line-height:1;display:flex}.time-opt small{letter-spacing:.1em;text-transform:uppercase;font-size:.55rem}.time-opt:hover{color:var(--text);border-color:var(--accent);box-shadow:none}.time-opt.on{color:#fff;border-color:var(--accent);box-shadow:0 0 10px -4px var(--accent)}@media (prefers-reduced-motion:reduce){.time-flyout .time-opt{animation:none}}@media (width<=700px){.time-flyout{top:calc(100% + 6px);left:auto;right:0;transform:none}.time-flyout .time-opt:first-child,.time-flyout .time-opt:nth-child(2),.time-flyout .time-opt:nth-child(3){--from-x:0px;--from-y:-42px}.mode-tabs{margin-bottom:44px}}.opening-trigger{color:var(--muted);font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:0;align-items:center;gap:8px;font-size:.68rem;line-height:1;display:inline-flex}.opening-trigger:hover{box-shadow:none;color:var(--text)}.opening-trigger .opening-value{color:var(--text)}.opening-picker.chosen .opening-trigger .opening-value{color:#fff;text-shadow:var(--glow)}.opening-trigger .caret{color:var(--accent-soft);font-size:.9em;transition:transform .18s}.opening-picker.open .opening-trigger .caret{transform:translateY(1px)rotate(180deg)}.opening-picker{justify-content:center;margin-top:10px;display:flex}.opening-picker .opening-trigger{border-bottom-color:var(--line-dim);justify-content:center;min-width:300px;padding:9px 18px}.opening-picker .opening-trigger:hover,.opening-picker.open .opening-trigger{border-color:#0000;border-bottom-color:var(--accent);box-shadow:0 8px 14px -10px var(--accent)}.opening-label:after{content:"·";color:var(--line);margin-left:8px}.rolled .opening-value{color:var(--accent-soft);text-shadow:var(--glow)}.opening-value.land{animation:.7s cubic-bezier(.22,1.15,.36,1) both opening-land}@keyframes opening-land{0%{color:#fff;text-shadow:0 0 18px rgba(var(--accent-rgb), 1), 0 0 34px rgba(var(--accent-soft-rgb), .8);transform:scale(1.08)}to{color:var(--accent-soft);text-shadow:var(--glow);transform:scale(1)}}.opening-picker.rolled .opening-trigger:has(.opening-value.land){border-bottom-color:var(--accent-soft);box-shadow:0 8px 18px -8px var(--accent)}.opening-value.roll-reel.spin{vertical-align:top;height:1em;line-height:1;display:inline-block;overflow:hidden;-webkit-mask-image:linear-gradient(#0000,#000 30% 70%,#0000);mask-image:linear-gradient(#0000,#000 30% 70%,#0000)}.opening-value.roll-reel .reel{flex-direction:column;transition-property:transform;transition-timing-function:cubic-bezier(.12,.8,.2,1);display:flex}.opening-value.roll-reel .reel-item{white-space:nowrap;height:1em;line-height:1;display:block}@media (prefers-reduced-motion:reduce){.opening-value.land{animation:none}}.opening-panel{left:50%;top:var(--panel-top,50%);width:min(760px,96vw);max-height:var(--panel-max-h,70vh);z-index:400;background:linear-gradient(180deg, rgba(var(--accent-rgb), .08), #0000 30%), var(--panel);border:1px solid var(--line);clip-path:polygon(var(--chamfer) 0, calc(100% - var(--chamfer)) 0, 100% var(--chamfer), 100% calc(100% - var(--chamfer)), calc(100% - var(--chamfer)) 100%, var(--chamfer) 100%, 0 calc(100% - var(--chamfer)), 0 var(--chamfer));box-shadow:0 24px 60px -20px #000000e6, var(--glow);text-align:left;padding:10px 12px 12px;animation:.22s cubic-bezier(.22,1.15,.36,1) both opening-in;position:fixed;overflow:auto;transform:translate(-50%)}@keyframes opening-in{0%{opacity:0;transform:translate(-50%)translateY(-8px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.opening-panel button{box-shadow:none;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:0}.opening-any{width:100%;color:var(--text);font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;align-items:baseline;gap:8px;margin-bottom:6px;padding:8px 10px;font-size:.74rem;display:flex;border-bottom-color:var(--line-dim)!important}.opening-any .diamond{color:var(--accent-soft)}.opening-any small{font-family:var(--body-font);letter-spacing:0;text-transform:none;color:var(--muted);margin-left:auto;font-size:.78rem}.opening-any:hover,.opening-any.on,.opening-any:focus-visible{color:#fff;outline:none;border-color:var(--accent)!important}.opening-columns{grid-template-columns:repeat(3,1fr);gap:4px 14px;display:grid}.opening-family-head{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent-soft);text-shadow:var(--glow);border-bottom:1px solid var(--line-dim);margin-bottom:4px;padding:8px 8px 4px;font-size:.66rem}.opening-family-head span{color:var(--muted);text-shadow:none;margin-left:6px}.opening-opt{width:100%;color:var(--text);grid-template-columns:1fr auto;grid-template-areas:"name eco""moves moves";padding:5px 8px;line-height:1.25;display:grid}.opening-opt .opening-name{grid-area:name;font-size:.86rem}.opening-opt .opening-eco{font-family:var(--mono);letter-spacing:.1em;color:var(--muted);opacity:.7;grid-area:eco;align-self:center;font-size:.6rem}.opening-opt .opening-moves{font-family:var(--mono);color:var(--muted);white-space:nowrap;text-overflow:ellipsis;grid-area:moves;font-size:.64rem;overflow:hidden}.opening-opt:hover,.opening-opt:focus-visible{background:rgba(var(--accent-rgb), .08);outline:none;border-color:var(--line)!important}.opening-opt.on{background:rgba(var(--accent-rgb), .14);box-shadow:0 0 12px -4px var(--accent);border-color:var(--accent)!important}.opening-opt.on .opening-name{color:#fff}.opening-opt.on .opening-name:before{content:"◆ ";color:var(--accent-soft);vertical-align:1px;font-size:.7em}@media (width<=700px){.opening-columns{grid-template-columns:1fr}.opening-panel{width:96vw}.opening-picker .opening-trigger{width:100%;min-width:0}.opening-any{flex-wrap:wrap}.opening-any small{flex-basis:100%;margin-left:0}}@media (prefers-reduced-motion:reduce){.opening-panel{animation:none}}.match{--board-px:var(--board);max-width:1160px;margin:0 auto;padding:14px 20px 24px;position:relative}.match-header{border-bottom:1px solid var(--line-dim);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;margin-bottom:12px;padding-bottom:10px;display:flex}.match-header>div:first-child{flex:auto;min-width:0}.match-header-actions button{white-space:nowrap}.match-header .title{font-family:var(--display);letter-spacing:.02em;font-size:1.35rem;font-weight:600}.match-header .subtitle{color:var(--muted);font-size:.85rem}.match-mode{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent-soft);text-shadow:var(--glow);white-space:nowrap;margin-left:auto;font-size:.78rem}.match-header-actions{gap:6px;display:flex}.match-body{grid-template-columns:26px calc(var(--board-px) * var(--board-scale,1)) minmax(0, 1fr);align-items:start;gap:18px;display:grid}.match-body.no-eval{grid-template-columns:calc(var(--board-px) * var(--board-scale,1)) minmax(0, 1fr)}.board-col{min-width:0;position:relative;container:board-col/inline-size}.board-wrap{width:calc(var(--board-px) * var(--board-scale,1));height:calc(var(--board-px) * var(--board-scale,1));box-shadow:0 0 0 1px var(--line-dim), 0 0 40px rgba(var(--accent-rgb), .12);position:relative;container-type:inline-size}.board{width:100%;height:100%}.board3d-canvas{overflow:hidden}.board3d-canvas canvas{touch-action:none;width:100%!important;height:100%!important}.board3d-loading{place-items:center;font-size:13px;display:grid;position:absolute;inset:0}.board-menu{display:inline-flex;position:relative}.board-menu-btn{justify-content:center;align-items:center;display:flex}.board-icon{width:20px;height:20px;display:block}.board-icon-badge{fill:var(--panel-2);stroke:currentColor;stroke-opacity:.5;stroke-width:1px}.board-icon-mode{fill:currentColor;font-family:var(--mono);letter-spacing:-.03em;font-size:8.4px;font-weight:700}.board-menu-pop{z-index:20;background:rgba(var(--panel-rgb), .96);border:1px solid var(--line-dim);box-shadow:0 10px 30px -12px #000, var(--glow);border-radius:6px;flex-direction:column;gap:8px;padding:10px;display:flex;position:absolute;bottom:calc(100% + 8px);right:0}.board-menu-group{flex-direction:column;gap:4px;display:flex}.board-menu .board-menu-label{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;text-align:left;flex:none}.board-menu-opts{gap:4px;display:flex}.board-menu .board-menu-opt{white-space:nowrap;background:0 0;min-width:0;padding:5px 10px;font-size:.85rem;line-height:1}.board-menu .board-menu-opt.on{border-color:var(--accent);color:#fff;background:rgba(var(--accent-rgb), .18);box-shadow:0 0 10px -2px rgba(var(--accent-rgb), .9);font-weight:600}.board-menu .board-menu-check{white-space:nowrap;background:0 0;align-self:flex-start;align-items:center;gap:6px;padding:5px 10px;font-size:.85rem;line-height:1;display:inline-flex}.board-menu-box{border:1px solid var(--line-dim);border-radius:3px;width:11px;height:11px}.board-menu .board-menu-check.on{border-color:var(--accent);color:#fff;background:rgba(var(--accent-rgb), .18)}.board-menu .board-menu-check.on .board-menu-box{border-color:var(--accent);background:var(--accent);box-shadow:0 0 8px -1px rgba(var(--accent-rgb), .9)}.board-wrap .board-menu{z-index:4;display:none;position:absolute;bottom:6px;right:6px}.fullscreen .board-wrap .board-menu{display:inline-flex}.board-wrap .board-menu-btn{color:var(--fg,#ddd);opacity:.55;background:#00000073;border-radius:6px;padding:3px 5px}.board-wrap .board-menu-btn:hover,.board-menu.open .board-menu-btn{opacity:1}.board-wrap .board-icon-badge{fill:#0b0a10}.board-fs-toggle{z-index:4;width:26px;height:22px;color:var(--fg,#ddd);border:1px solid var(--line-dim,#fff3);cursor:pointer;opacity:.55;background:#00000073;border-radius:6px;padding:0;font-size:13px;line-height:1;position:absolute;bottom:6px;left:6px}.board-fs-toggle:hover{opacity:1}.match.fullscreen{z-index:60;background:var(--bg);--fs-row:clamp(30px, 7.5dvh, 64px);--board-px:min(calc(100dvh - 2 * var(--fs-row)), 100dvw);--board-scale:1;place-items:center;max-width:none;margin:0;padding:0;display:grid;position:fixed;inset:0;overflow:hidden}.match.fullscreen>.match-header,.match.fullscreen .side,.match.fullscreen .evalbar,.match.fullscreen .board-col>.nav,.match.fullscreen>.design-layer{display:none}.match.fullscreen .match-body,.match.fullscreen .match-body.no-eval{gap:0;height:auto;display:block}.match.fullscreen .board-col{width:calc(var(--board-px) * var(--board-scale,1));display:block}.match.fullscreen .playerrow{height:var(--fs-row);padding:0 6px}.match.fullscreen .playerrow .name{font-size:clamp(.78rem, calc(var(--fs-row) * .33), 1.1rem)}.match.fullscreen .playerrow .clock{font-size:clamp(.95rem, calc(var(--fs-row) * .5), 1.7rem);padding:2px 10px}.match.fullscreen .board-col:has(.board3d) .playerrow{display:none}.match.fullscreen .board-col:has(.board3d){width:100vw}.match.fullscreen .board-col:has(.board3d) .board-wrap{width:100vw;height:100dvh;box-shadow:none}.board cg-container{width:100%!important;height:100%!important}cg-board{isolation:isolate;background:0 0}cg-board:before{content:"";z-index:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8' shape-rendering='crispEdges'%3E%3Cpath fill='%23000' fill-opacity='.72' d='M1 0h1v1H1zM3 0h1v1H3zM5 0h1v1H5zM7 0h1v1H7zM0 1h1v1H0zM2 1h1v1H2zM4 1h1v1H4zM6 1h1v1H6zM1 2h1v1H1zM3 2h1v1H3zM5 2h1v1H5zM7 2h1v1H7zM0 3h1v1H0zM2 3h1v1H2zM4 3h1v1H4zM6 3h1v1H6zM1 4h1v1H1zM3 4h1v1H3zM5 4h1v1H5zM7 4h1v1H7zM0 5h1v1H0zM2 5h1v1H2zM4 5h1v1H4zM6 5h1v1H6zM1 6h1v1H1zM3 6h1v1H3zM5 6h1v1H5zM7 6h1v1H7zM0 7h1v1H0zM2 7h1v1H2zM4 7h1v1H4zM6 7h1v1H6z'/%3E%3C/svg%3E") 0 0 / 100% 100%, var(--board-square) 0 0 / 12.5% 12.5% repeat;position:absolute;inset:0}cg-board:after{content:"";z-index:1;background:var(--board-ghost) center / var(--board-ghost-size) no-repeat;mix-blend-mode:screen;opacity:var(--board-ghost-opacity);pointer-events:none;position:absolute;inset:0}cg-board square.last-move{background:rgba(var(--accent-rgb), .22);box-shadow:inset 0 0 0 2px var(--accent)}cg-board square.selected{background:rgba(var(--accent-rgb), .35)}cg-board square.move-dest{background:radial-gradient(rgba(var(--accent-soft-rgb), .9) 18%, rgba(var(--accent-rgb), .35) 20%, transparent 24%)}cg-board square.premove-dest{background:radial-gradient(#8ca0ff99 18%,#0000 24%)}cg-board square.oc.move-dest{background:radial-gradient(transparent 0%, transparent 78%, rgba(var(--accent-soft-rgb), .55) 80%)}cg-board square.oc.premove-dest{background:radial-gradient(#0000 0% 78%,#8ca0ff59 80%)}cg-board square.move-dest:hover,cg-board square.move-dest.hover{background:rgba(var(--accent-rgb), .35)}cg-board square.check{background:radial-gradient(#ff3c3c 0%,#e70000 25%,#a9000000 89%,#9e000000 100%)}cg-board square.current-premove{background:#8ca0ff59}.cg-wrap coords{font-family:var(--mono);letter-spacing:0;font-size:clamp(7px,1.6cqw,16px)}.cg-wrap coords coord{text-shadow:0 0 3px #000;color:rgba(var(--text-rgb), .55)!important}.cg-wrap coords.files{width:100%;left:0}.cg-wrap coords.files coord{text-align:right;padding-right:.6cqw}.cg-wrap piece{filter:drop-shadow(0 2px 3px #0009)}.playerrow{border-left:2px solid #0000;align-items:center;gap:10px;padding:8px 6px;display:flex}.playerrow.active{border-left-color:var(--accent)}.playerrow .name{font-family:var(--mono);letter-spacing:.06em;white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:.85rem;font-weight:600;overflow:hidden}.playerrow .muted{font-family:var(--mono);color:var(--accent-soft);white-space:nowrap;font-size:.78rem}.clock{font-family:var(--mono);letter-spacing:.06em;border:1px solid var(--line-dim);color:var(--muted);background:#0009;margin-left:auto;padding:4px 14px;font-size:1.3rem;font-weight:600;position:relative}.clock:after{content:"";background:var(--line-dim);height:1px;position:absolute;bottom:-3px;left:12px;right:12px}.clock.running{color:#fff;border-color:var(--accent);box-shadow:var(--glow)}.clock.running:after{background:var(--accent)}.clock.low.running{color:var(--bad);border-color:var(--bad);box-shadow:0 0 12px rgba(var(--bad-rgb), .5)}.clock .grace{color:var(--accent-soft);margin-left:6px;font-size:.65em;font-weight:600}.dot{border:1px solid var(--line);border-radius:50%;width:11px;height:11px}.dot.white{background:#ece7ff}.dot.black{background:#0c0b12}.cue{z-index:4;pointer-events:none;width:12.5%;height:12.5%;position:absolute}.premove-layer{z-index:3;pointer-events:none;position:absolute;inset:0}.premove-layer .premove-sq,.premove-layer .premove-dot{width:12.5%;height:12.5%;position:absolute}.premove-layer .premove-sq{background:#8ca0ff59}.premove-layer .premove-sq.sel{background:#8ca0ff80}.premove-layer .premove-dot{background:radial-gradient(#8ca0ff99 18%,#0000 24%)}.premove-layer .premove-dot.oc{background:radial-gradient(#0000 0% 78%,#8ca0ff59 80%)}.premove-pieces{width:100%;height:100%;position:absolute;inset:0}.premove-pieces piece.hologram{opacity:.5;filter:drop-shadow(0 0 3px #8ca0ffe6)}.premove-pieces piece.carried{opacity:.75;z-index:12;transform:translate(-50%,-50%)}.swing-at{justify-content:center;align-items:flex-start;display:flex;overflow:visible}.swing-pop{font-family:var(--mono);letter-spacing:.04em;white-space:nowrap;background:#0009;border-radius:999px;padding:2px 9px;font-size:.95rem;font-weight:600;animation:2.4s cubic-bezier(.2,.8,.3,1) both swing-pop;display:inline-block;transform:translateY(-55%)}.swing-pop.up{color:#a6f0c4;text-shadow:0 0 6px #7fd8a4, 0 0 16px rgba(var(--good-rgb), .7);box-shadow:0 0 14px rgba(var(--good-rgb), .3)}.swing-pop.down{color:#ff9a94;text-shadow:0 0 6px #e35d5d, 0 0 16px rgba(var(--bad-rgb), .7);box-shadow:0 0 14px rgba(var(--bad-rgb), .3)}.swing-pop.flat{color:var(--muted);text-shadow:0 0 6px #8d87a699}@keyframes swing-pop{0%{opacity:0;transform:translateY(-35%)scale(.6)}12%{opacity:1;transform:translateY(-55%)scale(1.15)}24%{transform:translateY(-55%)scale(1)}70%{opacity:1;transform:translateY(-75%)}to{opacity:0;transform:translateY(-130%)}}.board-wrap.pulse-tactic .cg-wrap piece{animation:1.3s ease-out both tactic-pulse}.board-wrap.pulse-threat .cg-wrap piece{animation:1.3s ease-out both threat-pulse}@keyframes tactic-pulse{0%{filter:drop-shadow(0 2px 3px #0009)}25%{filter:drop-shadow(0 0 4px #7fd8a4) drop-shadow(0 0 12px rgba(var(--good-rgb), .9)) brightness(1.2)}to{filter:drop-shadow(0 2px 3px #0009)}}@keyframes threat-pulse{0%{filter:drop-shadow(0 2px 3px #0009)}25%{filter:drop-shadow(0 0 4px #ff4d4d)drop-shadow(0 0 12px #ff3c3ce6)brightness(1.25)}to{filter:drop-shadow(0 2px 3px #0009)}}.board-wrap.hold-win{--hold:var(--good);--hold-rgb:var(--good-rgb)}.board-wrap.hold-lose{--hold:var(--bad);--hold-rgb:var(--bad-rgb)}.board-wrap.hold-win,.board-wrap.hold-lose{box-shadow:0 0 0 1px var(--hold), 0 0 18px rgba(var(--hold-rgb), .55);animation:.8s ease-in-out .2s 5 alternate hold-frame}@keyframes hold-frame{0%{box-shadow:0 0 0 1px rgba(var(--hold-rgb), .5), 0 0 12px rgba(var(--hold-rgb), .35)}to{box-shadow:0 0 0 2px var(--hold), 0 0 30px rgba(var(--hold-rgb), .9), inset 0 0 44px rgba(var(--hold-rgb), .25)}}.hold-tab{z-index:6;background:var(--panel);border:1px solid var(--hold);box-shadow:0 0 12px rgba(var(--hold-rgb), .5);clip-path:polygon(6px 0,calc(100% - 6px) 0,100% 6px,100% calc(100% - 6px),calc(100% - 6px) 100%,6px 100%,0 calc(100% - 6px),0 6px);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;color:var(--text);pointer-events:none;align-items:center;gap:10px;padding:5px 12px 5px 10px;font-size:.72rem;animation:.35s ease-out both hold-tab-in;display:flex;position:absolute;top:0;left:50%;transform:translate(-50%,-50%)}.hold-tab b{color:var(--hold);font-weight:700}.hold-tab .pips i{width:10px;height:10px;margin-left:12px}.hold-tab .pips i:first-child{margin-left:0}.hold-tab .pips i+i:before{width:12px}.hold-tab .pips i.on{background:var(--hold);border-color:var(--hold);box-shadow:0 0 8px var(--hold)}.hold-tab .pips i.on+i.on:before{background:var(--hold)}@keyframes hold-tab-in{0%{opacity:0;transform:translate(-50%,calc(-50% - 14px))scale(.96)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@media (prefers-reduced-motion:reduce){.board-wrap.hold-win,.board-wrap.hold-lose,.hold-tab{animation:none}}.overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);pointer-events:none;text-align:center;z-index:3;background:#0000009e;flex-direction:column;justify-content:center;align-items:center;gap:6px;display:flex;position:absolute;inset:0}.overlay.result{pointer-events:auto;background:#000000d1}.overlay .big{font-family:var(--display);letter-spacing:.06em;text-transform:uppercase;text-shadow:0 0 24px rgba(var(--accent-rgb), .6);font-size:2.6rem;font-weight:700}.overlay.replay .big{opacity:.9;font-size:1.6rem}.overlay.replay{-webkit-backdrop-filter:none;backdrop-filter:none;text-shadow:0 0 6px #000,0 0 14px #000;z-index:10;background:radial-gradient(30% 20%,#000000b3,#00000059 55%,#0000 100%)}.board-wrap.replaying cg-board{isolation:auto}.replay-fog{z-index:3;pointer-events:none;animation:.26s ease-out replay-fog-in;position:absolute;inset:0}@keyframes replay-fog-in{0%{opacity:0}}.board-wrap.replaying .cg-wrap piece.anim{z-index:9;filter:drop-shadow(0 0 3px rgba(var(--accent-rgb), .9)) drop-shadow(0 0 12px rgba(var(--accent-rgb), .55)) brightness(1.1)}.fog-vignette .replay-fog.a,.fog-haze .replay-fog.a{-webkit-backdrop-filter:blur(3px)brightness(.42);-webkit-mask-image:radial-gradient(circle closest-side,#0000 68%,#000 100%);mask-image:radial-gradient(circle closest-side,#0000 68%,#000 100%)}.fog-vignette .replay-fog.b{display:none}.fog-haze .replay-fog.b{background:radial-gradient(circle closest-side, transparent 62%, rgba(var(--accent-rgb), .16) 88%, rgba(var(--accent-rgb), .34) 100%);mix-blend-mode:screen}.fog-ring .replay-fog.a,.fog-steps .replay-fog.a{-webkit-backdrop-filter:blur(4px)brightness(.38);-webkit-mask-image:linear-gradient(90deg,#000 6%,#0000 12% 88%,#000 94%),linear-gradient(#000 6%,#0000 12% 88%,#000 94%);mask-image:linear-gradient(90deg,#000 6%,#0000 12% 88%,#000 94%),linear-gradient(#000 6%,#0000 12% 88%,#000 94%)}.fog-ring .replay-fog.b{display:none}.fog-steps .replay-fog.b{-webkit-backdrop-filter:blur(1.5px)brightness(.7);-webkit-mask-image:linear-gradient(90deg,#000 15%,#0000 21% 79%,#000 85%),linear-gradient(#000 15%,#0000 21% 79%,#000 85%);mask-image:linear-gradient(90deg,#000 15%,#0000 21% 79%,#000 85%),linear-gradient(#000 15%,#0000 21% 79%,#000 85%)}.replay-path{z-index:4;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.replay-path line{stroke:var(--accent);stroke-width:.07px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1px;filter:drop-shadow(0 0 .08px rgba(var(--accent-rgb), .9));animation:.22s ease-out forwards replay-path-draw}.replay-path circle{fill:var(--accent);opacity:.85}@keyframes replay-path-draw{to{stroke-dashoffset:0}}.overlay button{margin-top:10px}.board-wrap.ending{animation:.25s linear both ending-shake}.board-wrap.ending .cg-wrap piece{--seal:none;--wave:none;--wave-extra:0s;animation-name:var(--seal), var(--wave);animation-duration:.5s,1.4s;animation-timing-function:ease-out,ease-out;animation-fill-mode:none,forwards;animation-delay:0s, calc(var(--wave-delay,0s) + var(--wave-extra) + .4s)}.board-wrap.ending.win.mine-white .cg-wrap piece.white,.board-wrap.ending.win.mine-black .cg-wrap piece.black{--seal:ending-seal-win}.board-wrap.ending.lose.mine-white .cg-wrap piece.white,.board-wrap.ending.lose.mine-black .cg-wrap piece.black{--seal:ending-seal-lose}.board-wrap.ending.draw.mine-white .cg-wrap piece.white,.board-wrap.ending.draw.mine-black .cg-wrap piece.black{--seal:ending-seal-draw}.board-wrap.ending-white .cg-wrap piece.white,.board-wrap.ending-black .cg-wrap piece.black{--wave:ending-ignite}.board-wrap.ending-white .cg-wrap piece.black,.board-wrap.ending-black .cg-wrap piece.white{--wave:ending-extinguish;--wave-extra:.3s}.board-wrap.ending-draw .cg-wrap piece{--wave:ending-extinguish}@keyframes ending-shake{0%,to{transform:translate(0)}15%{transform:translate(-6px,3px)}30%{transform:translate(6px,-3px)}45%{transform:translate(-5px,-2px)}60%{transform:translate(5px,2px)}75%{transform:translate(-3px,1px)}90%{transform:translate(2px,-1px)}}@keyframes ending-seal-win{0%{filter:drop-shadow(0 2px 3px #0009)}20%{filter:drop-shadow(0 0 4px var(--good)) drop-shadow(0 0 16px rgba(var(--good-rgb), 1)) brightness(1.35)}to{filter:drop-shadow(0 2px 3px #0009)}}@keyframes ending-seal-lose{0%{filter:drop-shadow(0 2px 3px #0009)}20%{filter:drop-shadow(0 0 4px var(--bad)) drop-shadow(0 0 16px rgba(var(--bad-rgb), 1)) brightness(1.2)}to{filter:drop-shadow(0 2px 3px #0009)}}@keyframes ending-seal-draw{0%{filter:drop-shadow(0 2px 3px #0009)}20%{filter:drop-shadow(0 0 4px var(--accent-soft)) drop-shadow(0 0 14px rgba(var(--accent-rgb), .9)) brightness(1.2)}to{filter:drop-shadow(0 2px 3px #0009)}}@keyframes ending-ignite{0%{filter:drop-shadow(0 2px 3px #0009)}30%{filter:drop-shadow(0 0 4px var(--accent-soft)) drop-shadow(0 0 14px rgba(var(--accent-rgb), 1)) brightness(1.35)}to{filter:drop-shadow(0 0 2px rgba(var(--accent-rgb), .7)) drop-shadow(0 2px 3px #0009)}}@keyframes ending-extinguish{0%{filter:drop-shadow(0 2px 3px #0009);opacity:1}to{filter:brightness(.3)saturate(.2)blur(1px);opacity:.55}}.overlay.result.reveal{animation:.8s 1.5s both ending-dim}.overlay.result.reveal .big{animation:.55s cubic-bezier(.2,.9,.25,1.2) 1.9s both ending-stamp}.overlay.result.reveal.win .big{animation:.55s cubic-bezier(.2,.9,.25,1.2) 1.9s both ending-stamp,1.2s ease-out 2.25s both ending-flash}.overlay.result.reveal.lose .big{color:var(--muted);text-shadow:0 0 18px rgba(var(--accent-rgb), .25);animation:1.2s ease-out 1.9s both ending-sink}.overlay.result.reveal.draw .big{text-shadow:0 0 14px rgba(var(--accent-rgb), .35);animation:.8s 1.9s both ending-rest}.overlay.result .rule{background:var(--accent);width:62%;max-width:340px;height:1px;box-shadow:0 0 8px rgba(var(--accent-rgb), .9), 0 0 22px rgba(var(--accent-rgb), .5);margin:4px 0 2px;animation:.7s cubic-bezier(.2,.8,.2,1) 2.35s both ending-rule;position:relative;transform:scaleX(0)}.overlay.result .rule:before,.overlay.result .rule:after{content:"◆";color:var(--accent-soft);text-shadow:var(--glow);font-size:8px;line-height:1;animation:.3s 2.95s both ending-rest;position:absolute;top:50%;transform:translateY(-50%)}.overlay.result .rule:before{left:-14px}.overlay.result .rule:after{right:-14px}.overlay.result.reveal.lose .rule{opacity:.45;box-shadow:none;animation-delay:2.8s}.overlay.result.reveal.lose .rule:before,.overlay.result.reveal.lose .rule:after{animation-delay:3.4s}.overlay.result.reveal.draw .rule{animation-name:ending-rule-split;animation-duration:.9s}.overlay.result.reveal>:nth-child(n+3){animation:.6s 3s both ending-rest}.overlay.result.reveal>:nth-child(4){animation-delay:3.12s}.overlay.result.reveal>:nth-child(5){animation-delay:3.24s}.overlay.result.reveal>:nth-child(6){animation-delay:3.36s}.overlay.result.reveal>:nth-child(n+7){animation-delay:3.48s}@keyframes ending-dim{0%{-webkit-backdrop-filter:blur();backdrop-filter:blur();background:0 0}to{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#000000d1}}@keyframes ending-stamp{0%{opacity:0;letter-spacing:.4em;filter:blur(6px);transform:scale(1.8)}60%{opacity:1;filter:blur()}to{letter-spacing:.06em;transform:scale(1)}}@keyframes ending-flash{0%{color:#fff;text-shadow:0 0 6px #fff, 0 0 40px rgba(var(--accent-soft-rgb), 1), 0 0 80px rgba(var(--accent-rgb), .9)}to{text-shadow:0 0 24px rgba(var(--accent-rgb), .6)}}@keyframes ending-sink{0%{opacity:0;filter:blur(4px);transform:translateY(-14px)}to{opacity:1;filter:blur();transform:translateY(0)}}@keyframes ending-rest{0%{opacity:0;transform:translateY(8px)}}@keyframes ending-rule{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes ending-rule-split{0%{transform:scaleX(0)}60%{transform:scaleX(1)}to{opacity:.5;transform:scaleX(1)}}@media (prefers-reduced-motion:reduce){.board-wrap.ending,.board-wrap.ending .cg-wrap piece,.overlay.result.reveal,.overlay.result.reveal .big,.overlay.result .rule,.overlay.result .rule:before,.overlay.result .rule:after,.overlay.result.reveal>:nth-child(n+3){animation-duration:10ms;animation-delay:0s}}.evalbar{width:26px;height:calc(var(--board-px) * var(--board-scale,1));border:1px solid var(--line);box-shadow:var(--glow);background:repeating-linear-gradient(#0000 0 calc(10% - 1px),#ffffff24 calc(10% - 1px) 10%),#0c0b12;margin-top:43px;position:relative;overflow:hidden}.evalbar-fill{background:linear-gradient(#ece7ff,#b9b0d8);transition:height .4s;position:absolute;bottom:0;left:0;right:0}.evalbar.orient-black{background:repeating-linear-gradient(#0000 0 calc(10% - 1px),#0000002e calc(10% - 1px) 10%),#d9d3ea}.evalbar.orient-black .evalbar-fill{background:linear-gradient(#16131f,#000)}.evalbar-ghost{opacity:.55;transition:height .4s,bottom .4s;position:absolute;left:0;right:0}.evalbar-ghost.mine{background:repeating-linear-gradient(45deg, rgba(var(--text-rgb), .5) 0 3px, transparent 3px 7px)}.evalbar-ghost.theirs,.evalbar.orient-black .evalbar-ghost.mine{background:repeating-linear-gradient(45deg, rgba(var(--panel-rgb), .55) 0 3px, transparent 3px 7px)}.evalbar.orient-black .evalbar-ghost.theirs{background:repeating-linear-gradient(45deg, rgba(var(--text-rgb), .5) 0 3px, transparent 3px 7px)}.evalbar-marker{height:2px;position:absolute;left:0;right:0;transform:translateY(1px)}.evalbar-marker.neutral{background:#fff;box-shadow:0 0 6px #fff}.evalbar-marker.target{background:var(--accent);box-shadow:0 0 8px var(--accent)}.side{flex-direction:column;gap:12px;min-width:0;display:flex}.side .card{margin:0}.side-controls{flex-direction:column;gap:12px;min-width:0;display:flex}.hold{color:var(--muted);font-family:var(--mono);letter-spacing:.06em;justify-content:space-between;align-items:center;margin:8px 0;font-size:.8rem;display:flex}.pips{align-items:center;display:inline-flex}.pips i{border:1px solid var(--muted);border-radius:50%;width:12px;height:12px;margin-left:14px;display:inline-block;position:relative}.pips i+i:before{content:"";background:var(--muted);width:14px;height:1px;position:absolute;top:50%;right:100%}.pips i.on{background:var(--accent);border-color:var(--accent);box-shadow:var(--glow)}.pips i.on+i.on:before{background:var(--accent)}.movelist{max-height:340px;font-family:var(--mono);font-size:.82rem;overflow-y:auto}.moverow{grid-template-columns:36px 1fr 1fr;padding:2px 0;display:grid}.movenum,.move.replay{color:var(--muted)}.move.played{color:var(--text)}.move.hit{color:var(--good)}.moveeval{color:var(--muted);margin-left:6px;font-size:.8em}.move{cursor:pointer;border-radius:2px;padding:0 4px}.move.empty{cursor:default}.move:not(.empty):hover{background:var(--panel-2)}.move.current{background:rgba(var(--accent-rgb), .18);color:var(--accent-soft);outline:1px solid var(--line)}.move.inaccuracy{color:#d9c04f}.move.mistake{color:#e0883a}.move.blunder,.chip.blunder{color:var(--bad)}.move.miss,.chip.miss{color:#e0883a}.move.brilliant,.chip.brilliant{color:#26c6da}.move.great,.chip.great{color:#5b9cf6}.chip.mistake{color:#e0883a}.chip.inaccuracy{color:#d9c04f}.variation{border-left:2px solid var(--line-dim);margin:2px 0;padding:1px 4px 1px 6px;line-height:1.7}.variation-move{color:var(--accent-soft);margin-right:4px}.variation-del{visibility:hidden;color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:.9em;line-height:1}.variation:hover>.variation-del{visibility:visible}.variation-del:hover{color:var(--bad)}.nav{transform-origin:top;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;padding:12px 0 6px;display:flex}.nav button{min-width:58px;padding:10px 16px;line-height:1}.nav-icon{width:16px;height:16px;display:block}.nav button:disabled{opacity:.35;cursor:default;border-color:var(--line-dim);box-shadow:none}.nav .nav-new-game{white-space:nowrap;min-width:0;margin-left:auto;padding:10px 16px}.nav-status{text-align:center;font-family:var(--mono);letter-spacing:.04em;flex-basis:100%;margin:4px 0 0;font-size:.85rem}.nav-status a{color:var(--accent-soft)}.game-actions{flex-wrap:wrap;align-items:center;gap:8px;width:fit-content;display:flex}.game-actions .offer-line{flex:100%}.game-actions .slam-fist{touch-action:none;-webkit-user-select:none;user-select:none;padding:8px 12px;line-height:1;position:relative;overflow:hidden}.game-actions .slam-fist .fist{font-size:1.15rem;font-family:"Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", var(--body-font);display:inline-block;transform:rotate(-90deg)}.game-actions .slam-fist .wind-up{background:var(--bad);height:3px;position:absolute;bottom:0;left:0}.game-actions .slam-fist.winding{animation:90ms infinite slam-jitter}@keyframes slam-jitter{0%{transform:translate(0)}33%{transform:translate(-1px,1px)}66%{transform:translate(1px,-1px)}to{transform:translate(0)}}@media (prefers-reduced-motion:reduce){.game-actions .slam-fist.winding{animation:none}}.result-line{text-align:center}.overlay-buttons{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:10px;display:flex}.overlay-buttons button{margin-top:0}.analysis h3{justify-content:space-between;align-items:baseline;display:flex}.pvs{flex-direction:column;gap:4px;display:flex}.pv{text-align:left;background:var(--panel-2);width:100%;font-family:var(--mono);border-color:#0000;align-items:baseline;gap:10px;padding:5px 8px;font-size:.8rem;display:flex}.pv-score{min-width:44px;color:var(--accent-soft)}.pv-moves{color:var(--text);white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.accuracy{border-top:1px solid var(--line-dim);margin-top:10px;padding-top:8px}.accuracy-row{justify-content:space-between;gap:8px;margin:3px 0;display:flex}.accuracy-row .name{font-weight:600}.accuracy-row span:last-child{text-align:right}.move-bubble{z-index:6;pointer-events:none;max-width:50%;position:absolute}.move-bubble-in{align-items:flex-end;gap:4px;animation:.35s cubic-bezier(.2,.8,.3,1) both bubble-in;display:flex}.move-bubble.flip .move-bubble-in{flex-direction:row-reverse}.move-bubble .reaction{filter:drop-shadow(0 4px 8px #0009);flex:none;width:auto;height:70px}.move-bubble .speech{border:1px solid var(--line);color:var(--text);background:#0e0918f0;border-radius:10px;min-width:0;margin-bottom:20px;padding:6px 9px;font-size:.72rem;line-height:1.35;position:relative;box-shadow:0 6px 18px #0000008c}.move-bubble .speech b{margin-bottom:1px;display:block}.move-bubble .speech:after,.move-bubble .speech:before{content:"";border:7px solid #0000;position:absolute;bottom:12px}.move-bubble .speech:before{border-right-color:var(--line);left:-14px}.move-bubble .speech:after{border-right-color:#0e0918f0;left:-12px}.move-bubble.flip .speech:before{border-right-color:#0000;border-left-color:var(--line);left:auto;right:-14px}.move-bubble.flip .speech:after{border-left-color:#0e0918f0;border-right-color:#0000;left:auto;right:-12px}.move-bubble-in.blunder .speech b,.move-bubble-in.miss .speech b{color:var(--bad)}.move-bubble-in.mistake .speech b{color:#e0883a}.move-bubble-in.inaccuracy .speech b{color:#d9c04f}.move-bubble-in.brilliant .speech b{color:#26c6da}.move-bubble-in.great .speech b{color:#5b9cf6}.move-bubble-in.best .speech b,.move-bubble-in.excellent .speech b{color:#7fd8a4}@keyframes bubble-in{0%{opacity:0;transform:translateY(6px)scale(.96)}to{opacity:1;transform:none}}.coach .explain .reaction-mini{float:left;border-radius:8px;width:auto;height:56px;margin:0 8px 4px 0}.coach .explain:after{content:"";clear:both;display:block}.coach h3{justify-content:space-between;align-items:baseline;display:flex}.coach .explain{background:var(--panel-2);border-left:3px solid var(--line);border-radius:6px;padding:8px 10px;font-size:.86rem;line-height:1.5}.coach .explain b{margin-bottom:2px;display:block}.coach .explain.blunder,.coach .explain.miss{border-left-color:var(--bad)}.coach .explain.mistake{border-left-color:#e0883a}.coach .explain.inaccuracy{border-left-color:#d9c04f}.coach .explain.brilliant{border-left-color:#26c6da}.coach .explain.great{border-left-color:#5b9cf6}.coach .explain.best{border-left-color:var(--good,#4caf50)}.coach .explain .ghost.small{margin-top:6px;padding:2px 8px;font-size:.78rem}.key-moments{flex-wrap:wrap;align-items:center;gap:4px;margin-top:8px;display:flex}.key-moments .muted{margin-right:4px}.chip{font-family:var(--mono);border:1px solid var(--line-dim);background:var(--panel-2);border-radius:999px;padding:2px 7px;font-size:.78rem}.chip.current{outline:1px solid var(--accent-soft)}.coach .tally{border-top:1px solid var(--line-dim);margin-top:10px;padding-top:8px}.report h3{justify-content:space-between;align-items:baseline;display:flex}.report .accuracy-row{align-items:center}.report .accuracy-row b{font-family:var(--mono);text-align:right;min-width:3ch;font-size:.82rem}.acc-bar{background:var(--panel-2);border-radius:3px;flex:1;height:6px;margin:0 8px;overflow:hidden}.acc-bar i{background:var(--good);border-radius:3px;height:100%;transition:width .4s;display:block}.report-text{margin:8px 0 0;font-size:.86rem;line-height:1.55}.report-text .move-ref{font:inherit;font-family:var(--mono);color:var(--accent-soft);cursor:pointer;text-underline-offset:3px;white-space:nowrap;background:0 0;border:none;padding:0 1px;font-size:.8rem;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.report-text .move-ref:hover{color:var(--text)}.report-text .move-ref.current{background:var(--panel-2);outline:1px solid var(--accent-soft);border-radius:3px}.report-themes{flex-wrap:wrap;gap:4px;margin-top:8px;display:flex}.report-themes .chip.good{border-color:var(--good);color:var(--good)}.report-themes .chip.bad{border-color:var(--bad);color:var(--bad)}.promotion{z-index:5;background:#0009;justify-content:center;align-items:center;gap:8px;display:flex;position:absolute;inset:0}.promo-piece{cursor:pointer;background:#d9d3ea;border-radius:6px;width:64px;height:64px;padding:0}.promo-piece:hover{background:#efeaff}.promo-piece piece{pointer-events:none;will-change:auto;background-size:cover;width:100%;height:100%;display:block;position:static}@media (width<=1000px){.lobby-grid{grid-template-columns:1fr;gap:16px}.hero{position:static}.lobby-side{width:100%;max-width:560px;margin:0 auto}}@media (width>=701px) and (orientation:landscape) and (height>=521px){.match{--board-px:min(760px, calc(100dvh - 180px), calc(100vw - max(320px, 34vw)))}}@media (width>=701px) and (orientation:landscape){.side-controls{align-items:center;padding-top:14px}.side-controls .game-actions{justify-content:center}.side-controls .game-actions button{padding:12px 20px;font-size:1.15rem}}@media (orientation:landscape) and (height<=520px){.match{--board-px:max(220px, min(calc(100dvh - 56px), calc(100vw - 360px)));padding:6px 10px 8px}.match-header{gap:4px 10px;margin-bottom:6px;padding-bottom:4px}.match-header .title{white-space:nowrap;text-overflow:ellipsis;font-size:1rem;line-height:1.2;overflow:hidden}.match-header .subtitle,.match-mode{display:none}.match-header-actions button{padding:3px 9px;font-size:.85rem}.match-body{grid-template-columns:16px calc(var(--board-px) * var(--board-scale,1)) minmax(0, 1fr);height:calc(var(--board-px) * var(--board-scale,1));grid-template-rows:auto minmax(0,1fr) auto auto;grid-template-areas:"bar board top""bar board side""bar board nav""bar board me";justify-content:start;align-items:stretch;gap:0 10px}.board-col{display:contents}.match-body.no-eval{grid-template-columns:calc(var(--board-px) * var(--board-scale,1)) minmax(0, 1fr);grid-template-areas:"board top""board side""board nav""board me"}.evalbar{grid-area:bar;width:16px;margin-top:0}.board-wrap{grid-area:board}.board-col>.playerrow:first-child{grid-area:top}.board-col>.board-wrap+.playerrow{grid-area:me}.board-col>.nav{grid-area:nav;justify-content:flex-start;gap:6px;padding:4px 0}.board-col>.nav button{min-width:50px;padding:7px 13px}.board-col>.nav .nav-status{flex-basis:auto;margin:0 0 0 auto;font-size:.72rem}.board-col>.nav .nav-new-game{margin-left:8px;padding:7px 13px}.side{scrollbar-width:thin;grid-area:side;gap:8px;min-height:0;padding-right:2px;overflow-y:auto}.side .card{padding:8px 12px}.side .card h3{margin-bottom:4px}.side-controls{flex-flow:wrap;order:-1;gap:6px;padding:0}.side-controls .game-actions button{padding:5px 12px;font-size:.85rem}.side .card.moves{order:0}.side .card.status{order:1}.movelist{max-height:160px}.playerrow{gap:8px;padding:3px 4px}.playerrow .name{text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;overflow:hidden}.playerrow .muted{display:none}.clock{padding:2px 8px;font-size:1rem}.overlay .big{font-size:1.6rem}}@media (orientation:portrait) and (width>=701px){.side{grid-template-columns:1fr 1fr;align-items:start;gap:12px 14px;display:grid}.side-controls,.side .analysis,.side .coach{grid-column:1/-1}}@media (width<=700px),(orientation:portrait){.match{--board-px:min(calc(100vw - 84px), var(--board-portrait))}.match-body{grid-template-columns:26px calc(var(--board-px) * var(--board-scale,1));justify-content:center}.match-body.no-eval{grid-template-columns:calc(var(--board-px) * var(--board-scale,1))}.side{grid-column:1/-1}.side-controls{order:-2;align-items:center;gap:10px}.board-col .nav{padding:8px 0 4px}.side .card.moves{order:-1}.side-controls .game-actions{justify-content:center}.side-controls .game-actions button{padding:10px 18px;font-size:1.05rem}.match-mode{display:none}}@media (width<=600px){.match{--board-px:min(calc(100vw - 52px), var(--board-portrait));padding:10px 8px 20px}.match-body{gap:10px}.match-header .title{font-size:1.15rem}.overlay .big{font-size:2rem}}@container board-col (width<=400px){.playerrow{gap:8px;padding:6px 4px}.playerrow .muted{display:none}.clock{padding:3px 10px;font-size:1.1rem}}@media (width<=560px){.carousel{--stage-h:320px}.ring-item{width:250px;height:250px;margin:-140px 0 0 -125px}.mode-tab-slot,.mode-tab{flex:1;min-width:0}.mode-detail p{white-space:normal;min-height:3em}h1{font-size:2.1rem}}.devpanel{right:12px;top:calc(12px + var(--safe-area-inset-top,0px));bottom:calc(12px + var(--safe-area-inset-bottom,0px));z-index:50;background:var(--panel);border:1px solid var(--line-dim);border-radius:6px;width:380px;padding:10px 12px;font-size:12px;position:fixed;overflow-y:auto;box-shadow:0 8px 30px #000000b3}.devpanel-head{align-items:center;gap:8px;margin-bottom:8px;display:flex}.devpanel-head .muted{flex:1}.devpanel-readout{background:#ffffff0a;border-radius:6px;margin-bottom:8px;padding:6px 8px;line-height:1.5}.devpanel-knobs{flex-direction:column;gap:4px;display:flex}.devpanel-knob{border-radius:4px;grid-template-columns:118px 1fr 64px 24px;align-items:center;gap:6px;padding:2px 4px;display:grid}.devpanel-knob.changed{background:rgba(var(--accent-rgb), .12)}.devpanel-knob.changed .devpanel-label{color:var(--accent-soft)}.devpanel-knob input[type=range]{width:100%;min-width:0}.devpanel-num{width:100%;color:inherit;border:1px solid var(--line-dim);background:#000;border-radius:4px;padding:2px 4px;font-size:11px}.devpanel-reset1{padding:0 4px;font-size:11px}.devpanel-foot{margin-top:8px;line-height:1.4}.devpanel-bands{flex-wrap:wrap;gap:4px;margin-bottom:6px;display:flex}.devpanel-band{border:1px solid var(--line-dim);color:inherit;cursor:pointer;background:0 0;border-radius:12px;padding:3px 7px;font-size:11px}.devpanel-band.selected{background:var(--accent);color:#fff;border-color:var(--accent)}.devpanel-band.changed:not(.selected){border-color:var(--accent)}.devpanel-level{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;margin-bottom:6px;display:flex}.devpanel-level-actions{gap:4px;display:flex}.devpanel-level-actions button{padding:3px 8px;font-size:11px}.devpanel-blind{background:rgba(var(--good-rgb), .08);border:1px solid rgba(var(--good-rgb), .3);border-radius:6px;margin-bottom:8px;padding:6px 8px;line-height:1.5}.devpanel-blind.stale{opacity:.6}.devpanel-blind table{border-collapse:collapse;width:100%;margin-top:4px;font-size:11px}.devpanel-blind th,.devpanel-blind td{text-align:right;padding:1px 3px}.devpanel-blind th:first-child,.devpanel-blind td:first-child{text-align:left}.devpanel-blind .bad{color:#e07a7a}.devpanel-watch{border:1px dashed var(--line-dim);border-radius:6px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;margin-bottom:8px;padding:6px 8px;display:flex}.devpanel-watch select{color:inherit;border:1px solid var(--line-dim);background:#000;border-radius:4px;padding:2px 4px;font-size:11px}.watch-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.watch-controls .speeds{gap:4px;display:flex}.watch-controls .speeds button{padding:3px 8px;font-size:12px}.watch-controls .speeds button.selected,.devpanel-speeds button.selected{background:var(--accent);color:#fff;border-color:var(--accent)}.devpanel-speeds{gap:3px;display:inline-flex}.devpanel-speeds button{padding:2px 6px;font-size:11px}.avatar{filter:drop-shadow(0 0 10px rgba(var(--accent-rgb), .25));display:block}.avatar-button{cursor:pointer;background:0 0;border:0;padding:0;line-height:0;position:relative}.avatar-button:hover{box-shadow:none}.avatar-button:hover .avatar{filter:drop-shadow(0 0 14px var(--avatar-edge,var(--accent)))}.avatar-edit{z-index:1;font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);background:var(--bg);border:1px solid var(--line-dim);opacity:0;padding:1px 6px;font-size:.6rem;transition:opacity .15s;position:absolute;bottom:-9px;left:50%;transform:translate(-50%)}.avatar-button:hover .avatar-edit,.avatar-button:focus-visible .avatar-edit{opacity:1}.account-head{align-items:center;gap:14px;display:flex}.account-id{flex:1;min-width:0}.account-id h2{margin-bottom:4px}.avatar-picker h3{margin-bottom:10px}.avatar-row{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.avatar-choice{background:0 0;padding:4px;line-height:0}.avatar-choice.on{border-color:var(--accent);box-shadow:var(--glow)}.hue-choice{background:0 0;place-items:center;width:34px;height:34px;padding:0;display:grid}.hue-choice span{background:var(--hue);width:16px;height:16px;transform:rotate(45deg)}.hue-choice.on{border-color:var(--hue);box-shadow:0 0 12px var(--hue)}.profile{max-width:1240px;margin:0 auto;padding:24px 20px 48px;position:relative}.profile-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;display:flex}.profile-id{align-items:center;gap:18px;min-width:0;display:flex}.profile-id h1{font-size:2.1rem}.profile-tags{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.tag{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-soft);border:1px solid var(--line-dim);padding:3px 8px;font-size:.66rem}.profile-rating{text-align:right}.hero-figure{font-family:var(--display);color:#fff;text-shadow:0 0 24px rgba(var(--accent-rgb), .55);font-size:3.4rem;font-weight:600;line-height:1}.profile-rating button{margin-top:10px}.profile-grid{grid-template-columns:minmax(260px,320px) minmax(0,1fr);align-items:start;gap:18px;display:grid}.profile-main{min-width:0}.rail-row{border-bottom:1px solid var(--line-dim);align-items:baseline;gap:10px;padding:7px 0;display:flex}.rail-row:last-child{border-bottom:0}.rail-row.idle{opacity:.5}.rail-glyph{color:var(--accent-soft);width:22px;font-size:1.2rem}.rail-name{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;flex:1;font-size:.76rem}.rail-record b{color:var(--text)}.tiles{grid-template-columns:1fr 1fr;gap:10px;display:grid}.tile{border:1px solid var(--line-dim);padding:8px 10px}.tile-label{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:.66rem}.tile-value{color:var(--text);font-size:1.5rem;font-weight:600;line-height:1.2}.tile-value.good{color:var(--good)}.tile-value.bad{color:var(--bad)}.chart{position:relative}.chart-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:8px;display:flex}.chart-controls{flex-wrap:wrap;gap:6px;display:flex}button.tiny{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;padding:4px 9px;font-size:.66rem}button.selected{border-color:var(--accent);color:var(--accent-soft)}.chart-svg{touch-action:none;display:block;overflow:visible}.chart-svg:focus-visible{outline:1px solid var(--accent)}.chart-grid,.chart-axis{stroke:var(--line-dim);stroke-width:1px}.chart-tick{fill:var(--muted);font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:10px}.chart-line{fill:none;stroke:var(--accent);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round;filter:drop-shadow(0 0 6px rgba(var(--accent-rgb), .5))}.chart-dot{fill:var(--accent);stroke:var(--panel);stroke-width:2px}.chart-dot.end{fill:var(--accent-soft)}.chart-endlabel{fill:var(--text);font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:12px}.chart-cursor line{stroke:var(--accent-soft);stroke-width:1px;opacity:.7}.chart-cursor circle{fill:#fff;stroke:var(--accent);stroke-width:2px}.chart-tip{border:1px solid var(--line);pointer-events:none;white-space:nowrap;background:#06050af0;flex-direction:column;gap:1px;padding:6px 10px;display:flex;position:absolute;bottom:4px;transform:translate(-50%)}.chart-tip b{color:#fff;font-size:1.1rem}.chart-empty{padding:4px 0 8px}.chart-table{max-height:260px;overflow-y:auto}.chart-table table{border-collapse:collapse;width:100%;font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:.78rem}.chart-table caption{text-align:left;padding-bottom:6px}.chart-table th{text-align:left;color:var(--muted);letter-spacing:.1em;text-transform:uppercase;border-bottom:1px solid var(--line-dim);padding:4px 8px 4px 0;font-size:.7rem;font-weight:500}.chart-table td{padding:3px 8px 3px 0}.history-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.history{flex-direction:column;display:flex}.history-row{border-bottom:1px solid var(--line-dim);align-items:stretch;display:flex}.history-row:last-child{border-bottom:0}.history-open{text-align:left;background:0 0;border:0;border-left:2px solid #0000;border-radius:0;flex:1;grid-template-columns:26px 76px minmax(0,1fr) 76px 92px;align-items:center;gap:10px;min-width:0;padding:9px 8px;display:grid}.history-open:hover{background:var(--panel-2);box-shadow:none}.history-row.win .history-open{border-left-color:var(--good)}.history-row.loss .history-open{border-left-color:var(--bad)}.history-row.draw .history-open{border-left-color:var(--muted)}.h-mode{color:var(--accent-soft);font-size:1.15rem}.h-outcome{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);white-space:nowrap;font-size:.72rem}.pip{background:var(--muted);width:8px;height:8px;margin-right:6px;display:inline-block;transform:rotate(45deg)}.pip.win{background:var(--good)}.pip.loss{background:var(--bad)}.h-opp{flex-direction:column;min-width:0;display:flex}.h-source{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.h-delta{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;flex-direction:column;align-items:flex-end;display:flex}.h-date{text-align:right;white-space:nowrap;flex-direction:column;align-items:flex-end;display:flex}.h-moves{font-size:.9em}.star{width:40px;color:var(--muted);background:0 0;border:0;border-radius:0;font-size:1.1rem}.star:hover{color:var(--accent-soft);box-shadow:none}.star.on{color:var(--accent);text-shadow:var(--glow)}.review-backdrop{z-index:40;padding:calc(20px + var(--safe-area-inset-top,0px)) 20px calc(20px + var(--safe-area-inset-bottom,0px));-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#000000c7;place-items:center;display:grid;position:fixed;inset:0;overflow-y:auto}.review{width:min(1000px,100%);max-height:92vh;margin:0;overflow-y:auto}.review-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.review-head h2{text-transform:none;letter-spacing:.06em;font-size:.95rem}.review-actions{gap:8px;display:flex}.review-body{grid-template-columns:minmax(0,420px) minmax(0,1fr);align-items:start;gap:18px;display:grid}.review-board .board-wrap,.review-board .cg-wrap{width:100%}.review-controls{align-items:center;gap:6px;margin-top:10px;display:flex}.review-controls span{text-align:center;flex:1}.review-controls button{padding:4px 10px;line-height:1}.review-result{border:1px solid var(--line-dim);border-left-width:2px;flex-direction:column;gap:3px;margin-bottom:12px;padding:10px 12px;display:flex}.review-result b{font-family:var(--display);letter-spacing:.04em;text-transform:uppercase;font-size:1.5rem}.review-result.win{border-left-color:var(--good)}.review-result.loss{border-left-color:var(--bad)}.review-moves{max-height:380px}@media (width<=980px){.profile-grid,.review-body{grid-template-columns:1fr}}@media (width<=620px){.history-open{grid-template-columns:22px minmax(0,1fr) 64px}.h-outcome,.h-date{display:none}.profile-rating{text-align:left}}.rematch-btn{align-items:center;gap:8px;display:inline-flex}.rematch-glyph,.rematch-spinner{flex:none;width:18px;height:18px}.rematch-btn.waiting{border:1px dashed var(--line);color:var(--muted);box-shadow:none;font-family:var(--mono);letter-spacing:.06em;background:0 0;font-size:.82rem}.rematch-btn.waiting:hover{border-color:var(--bad);color:var(--bad)}.rematch-spinner{animation:1.8s linear infinite rematch-spin}.rematch-btn.received{animation:1.1s ease-in-out infinite alternate rematch-pulse}.rematch-btn.received:after{content:"◆";color:var(--accent-soft);margin-left:2px;font-size:.6em}.rematch-btn:disabled{opacity:.45;box-shadow:none;cursor:default}@keyframes rematch-spin{to{transform:rotate(360deg)}}@keyframes rematch-pulse{0%{box-shadow:0 0 10px rgba(var(--accent-rgb), .4)}to{box-shadow:0 0 26px rgba(var(--accent-rgb), .9)}}.rematch-note{justify-content:center;align-items:center;gap:8px;margin-top:10px;font-size:.9rem;display:flex}.rematch-note img{flex:none;width:22px;height:22px}.series-pips{align-items:center;gap:4px;display:inline-flex}.series-pips img{width:18px;height:18px}.series-row{align-items:center;gap:10px;display:flex}.series-plate{background:var(--panel);border:1px solid var(--accent);box-shadow:var(--glow);clip-path:polygon(var(--chamfer) 0, calc(100% - var(--chamfer)) 0, 100% var(--chamfer), 100% calc(100% - var(--chamfer)), calc(100% - var(--chamfer)) 100%, var(--chamfer) 100%, 0 calc(100% - var(--chamfer)), 0 var(--chamfer));flex-direction:column;align-items:center;gap:4px;margin:4px 0 2px;padding:10px 26px 12px;animation:.4s both mode-in;display:flex}.series-plate.lost{box-shadow:none;border-color:#3a3a40}.series-plate-title{font-family:var(--display);letter-spacing:.3em;text-transform:uppercase;padding-left:.3em;font-size:1.5rem;font-weight:700}.series-plate .diamond{color:var(--accent);vertical-align:middle;margin:0 10px;font-size:.6em}.series-plate.lost .diamond{color:#3a3a40}.series-plate-score{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:.72rem}.rematch-screen{text-align:center;max-width:760px}.rematch-stage{height:var(--rematch-stage-h);margin-top:-10px;position:relative}.rematch-ripple{mix-blend-mode:screen;opacity:.75;pointer-events:none;width:110%;max-width:none;animation:.8s both rematch-fade-in;position:absolute;bottom:-136px;left:50%;transform:translate(-50%);-webkit-mask-image:linear-gradient(#000 55%,#0000 80%);mask-image:linear-gradient(#000 55%,#0000 80%)}.rematch-hero{mix-blend-mode:screen;width:auto;max-width:none;height:100%;margin:0 auto;animation:.6s both mode-in;position:absolute;bottom:0;left:0;right:0}.rematch-hero.square{height:116%;bottom:-12%}.rematch-sign{width:min(540px,92%);margin:-24px auto 18px;animation:.5s .15s both mode-in;display:block}.rematch-row{justify-content:center;align-items:center;gap:44px;margin-bottom:22px;animation:.5s .3s both mode-in;display:flex}.rematch-side{text-align:left;align-items:center;gap:12px;display:flex}.rematch-side b{font-family:var(--display);letter-spacing:.06em;text-transform:uppercase;font-size:1.15rem;display:block}.rematch-side .small{display:block}.swap-anim{background:var(--rematch-swap-strip) no-repeat 0 0;background-size:800% 100%;flex:none;width:76px;height:76px;animation:1.4s steps(7,end) .5s both swap-frames}.swap-anim.to-black{animation-direction:reverse}@keyframes swap-frames{0%{background-position-x:0}to{background-position-x:100%}}.rematch-count{flex:none;width:84px;height:84px;position:relative}.rematch-count img{width:100%;height:100%;animation:1.5s linear infinite rematch-spin}.rematch-count b{font-family:var(--display);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;font-size:2.2rem;font-weight:700;display:flex;position:absolute;inset:0}.rematch-series{font-family:var(--mono);letter-spacing:.06em;flex-direction:column;align-items:center;gap:4px;display:flex}@keyframes rematch-fade-in{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.rematch-spinner,.rematch-count img,.rematch-btn.received{animation:none}.swap-anim{animation-duration:10ms}.swap-anim.seek-side-pawn{animation:none}}.design-layer{pointer-events:none;will-change:transform}.design-layer img{object-fit:fill;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.design-editing{overflow:auto}.design-editing body{overflow:visible}.design-editing .design-layer{pointer-events:auto}.design-editing .ring-stage{outline:none}@keyframes design-anim-float{0%{translate:0 calc(-12px * var(--amt,1))}to{translate:0 calc(12px * var(--amt,1))}}@keyframes design-anim-pulse{0%{scale:calc(1 - .06 * var(--amt,1));opacity:.8}to{scale:calc(1 + .06 * var(--amt,1));opacity:1}}@keyframes design-anim-spin{to{rotate:360deg}}@keyframes design-anim-sway{0%{rotate:calc(-6deg * var(--amt,1))}to{rotate:calc(6deg * var(--amt,1))}}@keyframes design-anim-flicker{0%,to{opacity:1}35%{opacity:calc(1 - .45 * var(--amt,1))}50%{opacity:1}70%{opacity:calc(1 - .25 * var(--amt,1))}}@keyframes design-anim-drift{0%{translate:calc(-30px * var(--amt,1)) 0}to{translate:calc(30px * var(--amt,1)) 0}}@media (prefers-reduced-motion:reduce){.design-layer img{animation:none!important}}.design-host #root,.design-host body:before,.design-host body:after{display:none}.chat{--chat-list-h:240px;flex-direction:column;min-height:0;display:flex}.chat-lobby{--chat-list-h:260px}.chat-game{--chat-list-h:200px}.chat-head{align-items:center;gap:10px;margin-right:22px;display:flex}.chat-head h3{flex:1;margin:0}.chat-status{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:.68rem}.chat-status:before{content:"";background:var(--muted);vertical-align:1px;border-radius:50%;width:7px;height:7px;margin-right:7px;display:inline-block}.chat-status.online:before{background:var(--good);box-shadow:0 0 8px rgba(var(--good-rgb), .7)}.chat-status.connecting:before{background:var(--accent-soft);animation:1s ease-in-out infinite chat-blink}.chat-status.offline:before{background:var(--bad)}@keyframes chat-blink{50%{opacity:.25}}.chat-mute{padding:2px 8px;font-size:.95rem}.chat-mute.on{color:var(--bad)}.chat-list{height:var(--chat-list-h);overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(var(--accent-rgb), .35) transparent;border-top:1px solid var(--line-dim);border-bottom:1px solid var(--line-dim);flex-direction:column;gap:8px;margin:10px 0 8px;padding:10px 6px 10px 0;display:flex;overflow-y:auto}.chat-empty{text-align:center;margin:auto;padding:0 12px}.chat-msg{background:rgba(var(--text-rgb), .04);border:1px solid var(--line-dim);border-radius:12px 12px 12px 4px;align-self:flex-start;max-width:88%;padding:6px 10px 7px;animation:.18s ease-out both chat-in}.chat-msg.mine{background:rgba(var(--accent-rgb), .12);border-color:rgba(var(--accent-rgb), .35);border-radius:12px 12px 4px;align-self:flex-end}@keyframes chat-in{0%{opacity:0;transform:translateY(4px)}}.chat-meta{font-family:var(--mono);letter-spacing:.08em;color:var(--muted);align-items:baseline;gap:8px;font-size:.68rem;display:flex}.chat-from{color:var(--accent-soft);text-transform:uppercase;text-overflow:ellipsis;white-space:nowrap;max-width:160px;overflow:hidden}.chat-msg.mine .chat-from{color:var(--text)}.chat-guest{border:1px solid var(--line-dim);text-transform:uppercase;border-radius:8px;padding:0 5px;font-size:.6rem}.chat-time{font-variant-numeric:tabular-nums;opacity:.8;margin-left:auto}.chat-text{overflow-wrap:anywhere;white-space:pre-wrap;margin-top:3px;line-height:1.4}.chat-text.emoji-only{font-size:1.6rem;line-height:1.2}.chat-meme{width:132px;box-shadow:0 0 0 1px rgba(var(--accent-rgb), .3), 0 0 var(--glow-size) rgba(var(--accent-rgb), calc(var(--glow-alpha) * .5));background:#000;border-radius:10px;margin:6px 0 2px;overflow:hidden}.chat-meme img{aspect-ratio:1/1.18;object-fit:cover;width:100%;display:block}.chat-meme figcaption{font-family:var(--display);letter-spacing:.04em;text-align:center;color:var(--text);text-shadow:var(--glow);background:linear-gradient(180deg, rgba(var(--accent-rgb), .25), #0009);padding:5px 8px 6px;font-size:1rem;font-weight:600}.chat-meme.small{width:96px;margin:0}.chat-meme.small figcaption{padding:3px 6px 4px;font-size:.85rem}.chat-composer{align-items:center;gap:6px;display:flex}.chat-composer input{flex:1;min-width:0;padding:8px 10px}.chat-tool{padding:5px 8px;font-size:1.05rem;line-height:1}.chat-tool.on{color:var(--accent-soft);border-color:rgba(var(--accent-rgb), .6);box-shadow:var(--glow)}.chat-send{padding:8px 12px;line-height:1}.chat-picker{background:var(--panel-2);border:1px solid rgba(var(--accent-rgb), .35);border-radius:10px;margin:-4px 0 8px;padding:8px;animation:.14s ease-out both chat-in;position:relative;box-shadow:0 10px 30px #00000080}.chat-emojis{grid-template-columns:repeat(8,1fr);gap:4px;display:grid}.chat-emoji{background:0 0;border:1px solid #0000;border-radius:8px;padding:4px 0;font-size:1.3rem;line-height:1.3}.chat-emoji:hover{background:rgba(var(--accent-rgb), .15);border-color:rgba(var(--accent-rgb), .4)}.chat-memes{scrollbar-width:thin;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:6px;max-height:260px;display:grid;overflow-y:auto}.chat-meme-tile{border:1px solid var(--line-dim);text-align:center;background:#000;border-radius:8px;flex-direction:column;align-items:stretch;padding:0;display:flex;overflow:hidden}.chat-meme-tile:hover{border-color:rgba(var(--accent-rgb), .7);box-shadow:var(--glow)}.chat-meme-tile img{aspect-ratio:1;object-fit:cover;width:100%;display:block}.chat-meme-tile span{font-family:var(--mono);letter-spacing:.04em;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;padding:3px 4px 4px;font-size:.6rem;overflow:hidden}.chat-bubble{z-index:6;background:rgba(var(--panel-rgb), .92);border:1px solid rgba(var(--accent-rgb), .5);max-width:min(70%,320px);box-shadow:0 8px 24px #00000080, var(--glow);pointer-events:none;border-radius:12px 12px 12px 4px;align-items:flex-start;gap:8px;padding:8px 12px;animation:4.5s both chat-bubble;display:flex;position:absolute;top:8px;left:8px}.chat-bubble-from{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent-soft);align-self:center;font-size:.66rem}.chat-bubble-text{overflow-wrap:anywhere;align-self:center;font-size:1.05rem;line-height:1.35}@keyframes chat-bubble{0%{opacity:0;transform:translateY(-6px)scale(.96)}8%,85%{opacity:1;transform:none}to{opacity:0;transform:translateY(-4px)}}.match.fullscreen .chat-bubble{top:44px}.match.analysing .chat-game{display:none}@media (width<=700px),(orientation:portrait){.side .card.chat-game{--chat-list-h:150px;order:-1}}@media (prefers-reduced-motion:reduce){.chat-msg,.chat-picker,.chat-bubble{animation-duration:10ms}.chat-status.connecting:before{animation:none}}.matched-slam{z-index:60;pointer-events:none;--slam-cham:polygon(var(--chamfer) 0, calc(100% - var(--chamfer)) 0, 100% var(--chamfer), 100% calc(100% - var(--chamfer)), calc(100% - var(--chamfer)) 100%, var(--chamfer) 100%, 0 calc(100% - var(--chamfer)), 0 var(--chamfer));position:fixed;inset:0;overflow:hidden}.matched-slam>*{transform-origin:0 0;position:absolute;top:0;left:0}.slam-backdrop{background:radial-gradient(70% 60% at 50% 46%, rgba(var(--accent-rgb), .08), transparent 70%), #000000b8;opacity:0;inset:0}.slam-plate{width:300px;height:76px;filter:drop-shadow(0 0 10px rgba(var(--accent-rgb), .25));will-change:transform}.slam-plate>*{position:absolute}.slam-plate .edge{background:linear-gradient(90deg, var(--accent), var(--accent-soft));clip-path:var(--slam-cham);inset:0}.slam-plate .fill{background:linear-gradient(180deg, rgba(var(--accent-rgb), .12), transparent 45%), var(--panel);clip-path:var(--slam-cham);inset:1.5px}.slam-plate .av{top:14px}.slam-plate .name{max-width:210px;font-family:var(--display);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;color:var(--text);font-size:26px;font-weight:700;line-height:1;top:16px;overflow:hidden}.slam-plate .rating{font-family:var(--mono);letter-spacing:.12em;color:var(--accent-soft);white-space:nowrap;font-size:12px;top:46px}.slam-plate.l .av{left:16px}.slam-plate.l .name,.slam-plate.l .rating{left:76px}.slam-plate.r .av{right:16px}.slam-plate.r .name,.slam-plate.r .rating{right:76px}.slam-plate.r .name{text-align:right}.slam-frame{overflow:visible}.slam-frame path{fill:none;stroke:var(--accent-soft);stroke-width:2px;filter:drop-shadow(0 0 8px rgba(var(--accent-rgb), .9))}.slam-vs{width:34px;height:34px;font-family:var(--display);letter-spacing:.06em;color:var(--accent-soft);opacity:0;place-items:center;font-size:15px;font-weight:700;display:grid}.slam-vs:before{content:"";background:var(--panel);border:1px solid var(--accent-soft);box-shadow:0 0 10px rgba(var(--accent-rgb), .6);position:absolute;inset:0;transform:rotate(45deg)}.slam-vs span{position:relative}.slam-ring{border:2px solid var(--accent-soft);width:40px;height:40px;box-shadow:0 0 14px rgba(var(--accent-rgb), .9), inset 0 0 14px rgba(var(--accent-rgb), .5);opacity:0;border-radius:50%}.slam-spark{width:3px;height:160px;box-shadow:0 0 12px var(--accent-soft), 0 0 30px var(--accent);opacity:0;background:linear-gradient(#0000,#fff 30% 70%,#0000)}.slam-streak{background:linear-gradient(90deg, transparent, var(--accent-soft) 40%, #fff 50%, var(--accent-soft) 60%, transparent);opacity:0;width:800px;height:1px}.slam-opening{text-align:center;clip-path:inset(-20px 100% -20px 0);will-change:transform, clip-path;width:600px;height:44px}.slam-opening .in{font-family:var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--accent-soft);text-shadow:var(--glow);white-space:nowrap;font-size:13px;line-height:1}.slam-opening .in b{color:#fff;font-weight:600}.slam-opening .in .diamond{color:var(--accent);vertical-align:2px;margin:0 6px;font-size:9px}.slam-opening .moves{font-family:var(--mono);letter-spacing:.1em;color:var(--muted);white-space:nowrap;margin-top:8px;font-size:11px;line-height:1}.slam-opening .cursor{width:2px;height:72px;box-shadow:0 0 10px var(--accent-soft), 0 0 24px var(--accent);opacity:0;background:#fff;position:absolute;top:-14px;left:-1px}.match.entering .match-body{animation:.89s cubic-bezier(.16,1,.3,1) both match-enter}.match.entering .match-header{animation:.6s .25s both match-fade}@keyframes match-enter{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes match-fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.match.entering .match-body,.match.entering .match-header{animation:none}}.intro{--t-cut:2.1s;--t-title:2.4s;--t-quote:3.8s;--t-quote-pause:.7s;--t-black:.55s;--t-hold:.15s;--t-reveal:.45s;--t-open:.65s;z-index:70;cursor:pointer;-webkit-user-select:none;user-select:none;background:#000;position:fixed;inset:0;overflow:hidden;container-type:inline-size}.intro.leaving .intro-scene,.intro.leaving .intro-skip{animation:intro-leave var(--t-black) ease both;pointer-events:none}.intro.leaving{animation:intro-leave var(--t-reveal) ease calc(var(--t-black) + var(--t-hold)) both}@keyframes intro-leave{to{opacity:0}}.intro-scene{position:absolute;inset:0}.intro-scene>*{position:absolute}.intro-scan{z-index:8;pointer-events:none;background:repeating-linear-gradient(0deg,#00000038 0 1px,#0000 1px 3px);animation:.3s both intro-fade;inset:0}.intro-band{z-index:8;pointer-events:none;background:linear-gradient(180deg, transparent, rgba(var(--accent-rgb), .12), transparent);height:20%;animation:5s linear infinite intro-band;inset:-30% 0 auto}.intro-king,.intro-lines,.intro-cone{aspect-ratio:1;width:62cqw;bottom:-8cqw;right:2cqw}.intro-king{z-index:2;filter:sepia()hue-rotate(215deg)saturate(3)brightness(1.35)contrast(1.1);opacity:0;background:50%/contain no-repeat;animation:1s step-end .1s both intro-king-appear,4s 1.2s infinite intro-king-flicker}.intro-king.copy{filter:sepia()hue-rotate(215deg)saturate(4)brightness(2);animation:none}.intro-king.copy.a{animation:1s step-end .1s both intro-king-slice-a,.45s step-end 2.3s forwards intro-king-slice-a,6s 3s infinite intro-king-drift}.intro-king.copy.b{animation:1s step-end .1s both intro-king-slice-b}.intro-cone{z-index:1;aspect-ratio:auto;background:radial-gradient(ellipse at 50% 100%, rgba(var(--accent-rgb), .35), rgba(var(--accent-rgb), .08) 45%, transparent 70%);opacity:0;height:60cqw;animation:1s .4s both intro-fade;bottom:-2cqw}.intro-floor{z-index:1;background:radial-gradient(ellipse at center, rgba(var(--accent-rgb), .55), transparent 60%);filter:blur(1cqw);opacity:0;width:62cqw;height:6cqw;animation:.8s .5s both intro-fade;bottom:4cqw;right:2cqw}.intro-lines{z-index:3;background:repeating-linear-gradient(0deg, rgba(var(--accent-rgb), .25) 0 1px, transparent 1px 6px);opacity:0;animation:1s .6s both intro-fade;-webkit-mask:none 50%/contain no-repeat;mask:none 50%/contain no-repeat}.intro-shot{z-index:3;opacity:0;inset:0}.intro-shot.s1{animation:intro-fade 10ms both, intro-cut .1s var(--t-cut) step-end both}.intro-shot.s2{animation:intro-fade 10ms calc(var(--t-title) - .15s) both}.intro-left{justify-items:start;gap:2.6cqw;display:grid;position:absolute;top:50%;left:7cqw;transform:translateY(-50%)}.intro-readout{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text);white-space:nowrap;font-size:10cqw;font-weight:700;line-height:1}.intro-readout em{color:var(--accent-soft);font-style:normal}.intro-title{font-family:var(--display);letter-spacing:.01em;text-transform:uppercase;color:#fff;white-space:nowrap;font-size:14cqw;font-weight:700;line-height:1}.intro-title .diamond{margin-left:.15em;display:inline-block}.intro-quote{font-family:var(--mono);letter-spacing:.1em;color:var(--accent-soft);white-space:nowrap;font-size:2.2cqw}.intro-quote .w{vertical-align:top;opacity:0;max-width:0;animation:.2s both intro-fade,10ms step-start both intro-word;animation-delay:calc(var(--t-quote) + var(--i) * .16s + var(--p,0) * var(--t-quote-pause));margin-right:0;display:inline-block;overflow:hidden}@keyframes intro-word{to{max-width:20em;margin-right:.7em}}.intro-caret{background:var(--accent);vertical-align:-.15em;opacity:0;width:.55em;height:1em;animation:intro-caret .9s calc(var(--t-quote) + .9s) step-end infinite;margin-left:.3em;display:inline-block}.intro .glitch{opacity:0;animation:intro-appear var(--gd,1s) var(--gt,0s) step-end both;position:relative}.intro .glitch:before,.intro .glitch:after{content:attr(data-text);opacity:0;position:absolute;inset:0}.intro .glitch:before{color:var(--accent-soft);animation:intro-slice-a var(--gd,1s) var(--gt,0s) step-end both}.intro .glitch:after{color:#fff;text-shadow:-.06em 0 var(--accent);animation:intro-slice-b var(--gd,1s) var(--gt,0s) step-end both}.intro-readout.glitch{--gt:.3s}.intro-title.glitch{--gt:var(--t-title);--gd:1s}.intro-gate{position:absolute;inset:0}.intro-gate>*{position:absolute}.intro-gate-glow{background:radial-gradient(ellipse at center, rgba(var(--accent-rgb), .14), transparent 65%);height:14cqw;animation:2.4s ease-in-out infinite intro-gate-pulse;top:50%;left:0;right:0;transform:translateY(-50%)}.intro-gate-line{z-index:1;width:100%;height:100%;inset:0}.intro-gate .intro-cone,.intro-gate .intro-floor{opacity:.45;animation:none}.intro-gate .intro-king{filter:sepia()hue-rotate(215deg)saturate(3)brightness(.55)contrast(1.1);opacity:.45;animation:5s infinite intro-gate-king-flicker}.intro-gate .intro-band{z-index:3;animation-duration:6s}.intro-gate-title{z-index:4;font-family:var(--display);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);white-space:nowrap;font-size:9cqw;font-weight:600;line-height:.95;animation:2.4s ease-in-out infinite intro-gate-title-idle;top:8cqw;left:6cqw}.intro-gate-title .diamond{color:var(--accent);vertical-align:.5em;margin-left:.25em;font-size:.45em}.intro-gate-side{z-index:4;font-family:var(--mono);text-transform:uppercase;flex-direction:column;gap:1.4cqw;display:flex;bottom:7cqw;left:6cqw}.intro-gate-status{letter-spacing:.25em;color:var(--muted);gap:1.2em;font-size:clamp(.55rem,1.5cqw,.7rem);display:flex}.intro-gate-status i{color:var(--accent);font-style:normal;animation:1.2s step-end infinite intro-gate-blink}.intro-gate-tap{letter-spacing:.3em;color:var(--muted);white-space:nowrap;gap:.7em;font-size:clamp(.8rem,2.4cqw,1.1rem);animation:2.4s ease-in-out infinite intro-gate-pulse;display:flex}.intro-gate-tap .diamond{color:var(--accent)}.intro-gate.opening .intro-gate-glow{animation:.6s ease-out forwards intro-gate-glow-up}.intro-gate.opening .intro-king{animation:.35s step-end forwards intro-gate-king-light}.intro-gate.opening .intro-cone,.intro-gate.opening .intro-floor{animation:.6s ease-out forwards intro-gate-glow-up}.intro-gate.opening .intro-band{animation:intro-gate-band var(--t-open) ease-out forwards;background:linear-gradient(#0000,#ffffff59,#0000)}.intro-gate.opening .intro-gate-title{animation:.5s step-end forwards intro-gate-title-on}.intro-gate.opening .intro-gate-status{color:var(--accent-soft)}.intro-gate.opening .intro-gate-status i{color:var(--accent-soft);animation:none}.intro-gate.opening .intro-gate-tap{animation:.5s .15s forwards intro-gate-text-out}.intro.still .intro-gate *,.intro.still .intro-gate-title,.intro.still .intro-gate-tap{animation:none}@keyframes intro-gate-pulse{0%,to{opacity:.45}50%{opacity:1}}@keyframes intro-gate-title-idle{0%,to{opacity:.75}50%{opacity:1}}@keyframes intro-gate-blink{50%{opacity:0}}@keyframes intro-gate-king-flicker{0%,to{opacity:.45}7%{opacity:.3}9%{opacity:.5}41%{opacity:.42}43%{opacity:.25}45%{opacity:.48}}@keyframes intro-gate-king-light{0%{opacity:.45;filter:sepia()hue-rotate(215deg)saturate(3)brightness(.55)contrast(1.1)}30%{opacity:1;filter:sepia()hue-rotate(215deg)saturate()brightness(3)contrast(1.1)}to{opacity:.85;filter:sepia()hue-rotate(215deg)saturate(3)brightness(1.35)contrast(1.1)}}@keyframes intro-gate-glow-up{to{opacity:1;filter:brightness(2.4)blur(1cqw)}}@keyframes intro-gate-band{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(650%)}}@keyframes intro-gate-title-on{0%{color:#fff;opacity:1;text-shadow:0 0 2cqw rgba(var(--accent-rgb), .9)}40%{color:var(--text);opacity:1;text-shadow:0 0 1cqw rgba(var(--accent-rgb), .5)}to{color:var(--text);opacity:1}}@keyframes intro-gate-text-out{0%{opacity:1;letter-spacing:.3em}to{opacity:0;letter-spacing:.6em}}@media (orientation:portrait){.intro-gate .intro-king{opacity:.3}.intro-gate-title{text-align:center;text-shadow:0 0 2px #000,0 0 30px #000000e6;font-size:16cqw;top:22%;left:0;right:0}.intro-gate-side{align-items:center;gap:3cqw;margin-top:10cqw;inset:50% 0 auto}.intro-gate-status{font-size:2.6cqw}.intro-gate-tap{font-size:clamp(.8rem,3.6cqw,1.1rem)}}.intro-skip{right:max(16px, var(--safe-area-inset-right,env(safe-area-inset-right,0px)));bottom:max(16px, var(--safe-area-inset-bottom,env(safe-area-inset-bottom,0px)));z-index:10;border:1px solid rgba(var(--accent-rgb), .35);color:var(--muted);font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;opacity:0;background:#00000080;padding:6px 12px;font-size:.7rem;animation:.6s 1.2s both intro-fade;position:absolute}.intro-skip:hover,.intro-skip:focus-visible{color:var(--text);border-color:var(--accent)}@keyframes intro-fade{to{opacity:1}}@keyframes intro-cut{to{opacity:0}}@keyframes intro-band{0%{transform:translateY(0)}to{transform:translateY(650%)}}@keyframes intro-caret{0%,to{opacity:1}50%{opacity:0}}@keyframes intro-appear{0%{opacity:0}8%{opacity:1}12%{opacity:.2}20%{opacity:1}34%{opacity:.5;transform:translate(.4cqw)}38%{opacity:1;transform:none}55%{opacity:.85}60%{opacity:1;transform:translate(-.3cqw)}66%{transform:none}to{opacity:1}}@keyframes intro-slice-a{0%{opacity:1;clip-path:inset(10% 0 70%);transform:translate(-2cqw)}15%{clip-path:inset(50% 0 20%);transform:translate(1.4cqw)}30%{clip-path:inset(0 0 85%);transform:translate(-.8cqw)}45%{clip-path:inset(70% 0 5%);transform:translate(1.8cqw)}60%{clip-path:inset(35% 0 45%);transform:translate(-1cqw)}75%{clip-path:inset(80% 0 0);transform:translate(.6cqw)}90%{clip-path:inset(20% 0 65%);transform:translate(-.4cqw)}to{opacity:0}}@keyframes intro-slice-b{0%{opacity:1;clip-path:inset(60% 0 10%);transform:translate(1.6cqw)}15%{clip-path:inset(5% 0 80%);transform:translate(-1.2cqw)}30%{clip-path:inset(40% 0 30%);transform:translate(2cqw)}45%{clip-path:inset(15% 0 60%);transform:translate(-1.6cqw)}60%{clip-path:inset(75% 0 0);transform:translate(.8cqw)}75%{clip-path:inset(30% 0 50%);transform:translate(-.5cqw)}90%{clip-path:inset(55% 0 25%);transform:translate(.3cqw)}to{opacity:0}}@keyframes intro-king-appear{0%{opacity:0}8%{opacity:.85}12%{opacity:.2}20%{opacity:.85}34%{opacity:.45}38%{opacity:.85}55%{opacity:.7}60%{opacity:.85}to{opacity:.85}}@keyframes intro-king-flicker{0%,41%,43%,78%,80%,to{opacity:.85}42%{opacity:.6}79%{opacity:.7}}@keyframes intro-king-slice-a{0%{opacity:.9;clip-path:inset(12% 0 66%);transform:translate(-3cqw)}14%{clip-path:inset(48% 0 22%);transform:translate(2cqw)}28%{clip-path:inset(2% 0 84%);transform:translate(-1.4cqw)}42%{clip-path:inset(68% 0 6%);transform:translate(2.6cqw)}56%{clip-path:inset(33% 0 47%);transform:translate(-1.6cqw)}70%{clip-path:inset(78% 0 0);transform:translate(1cqw)}85%{clip-path:inset(22% 0 63%);transform:translate(-.6cqw)}to{opacity:0}}@keyframes intro-king-slice-b{0%{opacity:.9;clip-path:inset(58% 0 12%);transform:translate(2.4cqw)}14%{clip-path:inset(6% 0 78%);transform:translate(-1.8cqw)}28%{clip-path:inset(42% 0 28%);transform:translate(3cqw)}42%{clip-path:inset(16% 0 58%);transform:translate(-2.2cqw)}56%{clip-path:inset(74% 0 0);transform:translate(1.2cqw)}70%{clip-path:inset(30% 0 52%);transform:translate(-.8cqw)}85%{clip-path:inset(54% 0 26%);transform:translate(.5cqw)}to{opacity:0}}@keyframes intro-king-drift{0%,30%,33%,70%,73%,to{opacity:0}31%{opacity:.6;clip-path:inset(40% 0 52%);transform:translate(-1.2cqw)}71%{opacity:.6;clip-path:inset(15% 0 78%);transform:translate(1cqw)}}@media (orientation:portrait){.intro-king,.intro-lines,.intro-cone{width:130cqw;bottom:-18cqw;left:50%;right:auto;transform:translate(-50%)}.intro-king{animation-name:intro-king-appear-dim,intro-king-flicker-dim}.intro-king.copy.a,.intro-king.copy.b{display:none}.intro-cone{height:120cqw;bottom:-6cqw}.intro-floor{width:110cqw;bottom:6cqw;left:50%;right:auto;transform:translate(-50%)}.intro-left{justify-items:center;gap:4cqw;top:40%;left:0;right:0}.intro-readout{font-size:15cqw}.intro-title{text-shadow:0 0 2px #000,0 0 30px #000000e6;font-size:22cqw}.intro-quote{white-space:normal;text-align:center;text-shadow:0 0 12px #000000e6;max-width:86cqw;font-size:3.4cqw}}@keyframes intro-king-appear-dim{0%{opacity:0}8%{opacity:.5}12%{opacity:.1}20%{opacity:.5}34%{opacity:.25}38%{opacity:.5}to{opacity:.5}}@keyframes intro-king-flicker-dim{0%,41%,43%,78%,80%,to{opacity:.5}42%{opacity:.35}79%{opacity:.4}}.intro.still .intro-scene *,.intro.still .glitch:before,.intro.still .glitch:after{animation-duration:1ms!important;animation-iteration-count:1!important;animation-delay:0s!important}.intro.still .intro-band,.intro.still .intro-king.copy{display:none}.perfect-seal{--t-slam:.25s;--t-hit:.57s;--t-acc:1.1s;--t-sub:1.5s;--t-leave:.5s;z-index:5;cursor:pointer;-webkit-user-select:none;user-select:none;background:#000000e6;animation:.25s both perfect-fade;position:absolute;inset:0;container-type:inline-size}.perfect-seal.leaving{animation:perfect-leave var(--t-leave) ease both;pointer-events:none}.perfect-stage{text-align:center;animation:perfect-shake .35s linear var(--t-hit) forwards;flex-direction:column;justify-content:center;align-items:center;gap:1.2cqw;display:flex;position:absolute;inset:0}.perfect-flash{opacity:0;pointer-events:none;animation:perfect-flash .35s var(--t-hit) forwards;background:#fff;position:absolute;inset:0}.perfect-dust{background:radial-gradient(circle, transparent 55%, rgba(var(--accent-rgb), .35) 62%, transparent 72%);filter:blur(1cqw);opacity:0;pointer-events:none;width:40cqw;height:40cqw;animation:perfect-dust .7s ease-out var(--t-hit) forwards;border-radius:50%;position:absolute;top:46%;left:50%;transform:translate(-50%,-50%)scale(.3)}.perfect-plate{border:.7cqw solid var(--accent);box-shadow:inset 0 0 0 .5cqw #000, inset 0 0 0 .85cqw var(--accent), 0 0 30px rgba(var(--accent-rgb), .45);clip-path:polygon(3cqw 0,calc(100% - 3cqw) 0,100% 3cqw,100% calc(100% - 3cqw),calc(100% - 3cqw) 100%,3cqw 100%,0 calc(100% - 3cqw),0 3cqw);opacity:0;animation:perfect-slam .32s cubic-bezier(.55, 0, 1, .45) var(--t-slam) both;background:#0c0b12d9;justify-items:center;gap:.6cqw;margin-bottom:3cqw;padding:4cqw 6cqw;display:grid;position:relative;transform:rotate(-7deg)scale(2.6)}.perfect-plate .top{font-family:var(--mono);letter-spacing:.42em;text-indent:.42em;text-transform:uppercase;color:var(--accent-soft);font-size:2.2cqw}.perfect-plate .mid{font-family:var(--display);letter-spacing:.06em;text-transform:uppercase;color:#fff;text-shadow:0 0 18px rgba(var(--accent-rgb), .7);font-size:9cqw;font-weight:700;line-height:1}.perfect-plate .bot{font-family:var(--mono);letter-spacing:.3em;color:var(--accent-soft);font-size:3cqw}.perfect-plate .bot b{color:#fff}.perfect-acc{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--accent-soft);opacity:0;animation:perfect-up .4s var(--t-acc) both;font-size:3.2cqw}.perfect-acc b{letter-spacing:.02em;vertical-align:-.05em;color:#fff;font-size:1.35em;font-weight:700}.perfect-sub{font-family:var(--mono);letter-spacing:.08em;color:var(--muted);opacity:0;animation:perfect-up .5s var(--t-sub) both;font-size:2.3cqw}.overlay.result .perfect-line{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent-soft);text-shadow:0 0 10px rgba(var(--accent-rgb), .5);font-size:.72rem;animation:.5s both perfect-up}@keyframes perfect-fade{0%{opacity:0}to{opacity:1}}@keyframes perfect-leave{to{opacity:0}}@keyframes perfect-up{0%{opacity:0;transform:translateY(1.2cqw)}to{opacity:1;transform:none}}@keyframes perfect-slam{0%{opacity:0;filter:blur(4px);transform:rotate(-16deg)scale(2.6)}70%{opacity:1}to{opacity:1;filter:none;transform:rotate(-7deg)scale(1)}}@keyframes perfect-dust{0%{opacity:1;transform:translate(-50%,-50%)scale(.3)}to{opacity:0;transform:translate(-50%,-50%)scale(2.2)}}@keyframes perfect-flash{0%{opacity:0}10%{opacity:.7}to{opacity:0}}@keyframes perfect-shake{0%{transform:none}15%{transform:translate(-.8cqw,.5cqw)}30%{transform:translate(.7cqw,-.4cqw)}45%{transform:translate(-.5cqw,-.3cqw)}60%{transform:translate(.4cqw,.3cqw)}80%{transform:translate(-.2cqw,.1cqw)}to{transform:none}}.perfect-seal.still .perfect-stage,.perfect-seal.still .perfect-plate,.perfect-seal.still .perfect-acc,.perfect-seal.still .perfect-sub{animation-duration:1ms!important;animation-delay:0s!important}.perfect-seal.still .perfect-flash,.perfect-seal.still .perfect-dust{display:none}.move-mark{--t-move:.35s;--t-hit:1.42s;--t-off:2.2s;--t-badge:2.5s;--t-caption:2.6s;--t-pill:2.85s;--t-facts:3.1s;--t-buttons:4.3s;--t-leave:.5s;--t-move-len:.6s;--t-fact-step:.2s;--tier:var(--accent);--tier-rgb:var(--accent-rgb);--tier-core:#fff;--mark-sq-light:#8c8c8c;--mark-sq-dark:#343434;z-index:5;cursor:pointer;-webkit-user-select:none;user-select:none;background:#000000f0;animation:.25s both perfect-fade;position:absolute;inset:0;container-type:size}.move-mark.tier-brilliant{--tier:var(--accent-soft);--tier-rgb:var(--accent-soft-rgb)}.move-mark.tier-unbelievable{--tier:#fff;--tier-rgb:235, 220, 255}.move-mark.leaving{animation:perfect-leave var(--t-leave) ease both;pointer-events:none}.mark-flash{z-index:6;opacity:0;pointer-events:none;animation:perfect-flash .3s calc(var(--t-hit) - 20ms) forwards;background:#fff;position:absolute;inset:0}.move-mark.tier-great .mark-flash{display:none}.mark-stage{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1.8cqw;padding:2cqw 5cqw;display:flex;position:absolute;inset:0}.mark-board-wrap{width:min(64cqw,44cqh);animation:perfect-shake .35s linear var(--t-hit) forwards;flex:none;position:relative}.mark-board{aspect-ratio:1;background:conic-gradient(var(--mark-sq-dark) 25%, var(--mark-sq-light) 0 50%, var(--mark-sq-dark) 0 75%, var(--mark-sq-light) 0) 0 0 / 25% 25%;width:100%;box-shadow:0 0 0 1px rgba(var(--tier-rgb), .6), 0 0 22px rgba(var(--tier-rgb), .28);position:relative;overflow:hidden}.mark-board piece{filter:drop-shadow(0 2px 3px #0009)}.mark-board piece.hero{z-index:3;animation:mark-slide var(--t-move-len) cubic-bezier(.4, 0, .2, 1) var(--t-move) forwards}.mark-board piece.taken{animation:mark-taken .15s ease calc(var(--t-move) + var(--t-move-len) - .1s) forwards}.mark-square{background:rgba(var(--tier-rgb), .45);width:12.5%;height:12.5%;box-shadow:inset 0 0 0 .3cqw rgba(var(--tier-rgb), .9);opacity:0;animation:perfect-show .25s calc(var(--t-move) + var(--t-move-len) - .15s) forwards;position:absolute}.mark-arrow{z-index:4;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.mark-arrow line{stroke:var(--tier);stroke-width:.22px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1px;animation:mark-draw var(--t-move-len) cubic-bezier(.4, 0, .2, 1) var(--t-move) forwards}.mark-arrow polygon{fill:var(--tier);opacity:0;animation:perfect-show 10ms calc(var(--t-move) + var(--t-move-len) - 30ms) forwards}.mark-badge{z-index:5;background:var(--tier);color:#000;width:4.6cqw;height:4.6cqw;font-family:var(--display);box-shadow:0 0 0 .3cqw #000, 0 0 14px rgba(var(--tier-rgb), .8);animation:mark-pop .35s cubic-bezier(.3, 1.5, .6, 1) var(--t-badge) forwards;border-radius:50%;place-items:center;margin:-2.3cqw 0 0 calc(12.5% - 2.3cqw);font-size:3.4cqw;font-weight:700;line-height:1;display:grid;position:absolute;transform:scale(0)}.mark-badge.three{font-size:2.6cqw}.mark-dust{background:radial-gradient(circle, transparent 55%, rgba(var(--tier-rgb), .4) 62%, transparent 72%);filter:blur(1cqw);opacity:0;pointer-events:none;width:70%;height:70%;animation:perfect-dust .7s ease-out var(--t-hit) forwards;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.3)}.mark-glyph{z-index:7;font-family:var(--display);letter-spacing:-.04em;color:var(--tier-core);text-shadow:0 0 24px rgba(var(--tier-rgb), .85);opacity:0;pointer-events:none;animation:mark-slam .3s cubic-bezier(.55, 0, 1, .45) calc(var(--t-hit) - .3s) both, mark-off .45s ease-in var(--t-off) forwards;font-size:50cqw;font-weight:700;line-height:1;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.move-mark.tier-unbelievable .mark-glyph,.move-mark.tier-unbelievable .mark-caption b{text-shadow:-.12cqw 0 #ff5fd9,.12cqw 0 #5fd9ff,0 0 20px #ffffff8c}.mark-caption{font-family:var(--display);letter-spacing:.06em;text-transform:uppercase;color:#fff;white-space:nowrap;opacity:0;animation:perfect-up .4s var(--t-caption) both;font-size:6.4cqw;font-weight:600;line-height:1}.mark-caption b{color:var(--tier-core);text-shadow:0 0 14px rgba(var(--tier-rgb), .9)}.mark-pill{font-family:var(--mono);letter-spacing:.3em;text-indent:.3em;text-transform:uppercase;color:#fff;border:.3cqw solid var(--tier);background:rgba(var(--tier-rgb), .16);box-shadow:0 0 16px rgba(var(--tier-rgb), .35);clip-path:polygon(1.3cqw 0,calc(100% - 1.3cqw) 0,100% 1.3cqw,100% calc(100% - 1.3cqw),calc(100% - 1.3cqw) 100%,1.3cqw 100%,0 calc(100% - 1.3cqw),0 1.3cqw);opacity:0;animation:mark-pop-in .4s cubic-bezier(.3, 1.5, .6, 1) var(--t-pill) both;padding:1.3cqw 4.5cqw;font-size:2.6cqw}.mark-facts{border-top:1px solid rgba(var(--accent-rgb), .35);width:min(80cqw,560px);display:grid}.mark-fact{border-bottom:1px solid rgba(var(--accent-rgb), .2);font-family:var(--mono);letter-spacing:.04em;color:var(--text);text-align:left;opacity:0;animation:perfect-up .4s calc(var(--t-facts) + var(--n) * var(--t-fact-step)) both;grid-template-columns:16cqw 1fr;align-items:baseline;gap:2cqw;padding:1.4cqw .8cqw;font-size:2.3cqw;display:grid}.mark-fact .k{letter-spacing:.22em;text-transform:uppercase;color:var(--accent-soft);font-size:1.9cqw}.mark-fact .v b{color:#fff;font-size:1.25em;font-weight:700}.mark-fact .v b.up{color:var(--good)}.mark-fact .v .muted{color:var(--muted)}.mark-meter{opacity:0;height:.9cqw;animation:perfect-fade .3s calc(var(--t-facts) + 2 * var(--t-fact-step)) both;background:#ffffff1a;margin:-1px .8cqw 0;position:relative}.mark-meter i{background:var(--tier);width:0;box-shadow:0 0 10px rgba(var(--tier-rgb), .8);animation:mark-meter .8s cubic-bezier(.2, .8, .2, 1) calc(var(--t-facts) + 2 * var(--t-fact-step) + 50ms) forwards;position:absolute;top:0;bottom:0;left:0}.mark-text{flex-direction:column;align-items:center;gap:1.8cqw;min-width:0;display:flex}.mark-buttons{opacity:0;animation:perfect-fade .4s var(--t-buttons) both}.mark-buttons button{min-width:34cqw}.overlay.result .mark-line{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent-soft);text-shadow:0 0 10px rgba(var(--accent-rgb), .5);font-size:.72rem;animation:.5s both perfect-up}@keyframes perfect-show{to{opacity:1}}@keyframes mark-slide{to{transform:translate(var(--dx), var(--dy))}}@keyframes mark-taken{to{opacity:0;transform:scale(.6)}}@keyframes mark-draw{to{stroke-dashoffset:0}}@keyframes mark-pop{0%{transform:scale(0)}70%{transform:scale(1.25)}to{transform:scale(1)}}@keyframes mark-pop-in{0%{opacity:0;transform:scale(0)}30%{opacity:1}70%{transform:scale(1.25)}to{opacity:1;transform:scale(1)}}@keyframes mark-slam{0%{opacity:0;filter:blur(4px);transform:translate(-50%,-50%)rotate(-16deg)scale(2.6)}70%{opacity:1}to{opacity:1;filter:none;transform:translate(-50%,-50%)rotate(-6deg)scale(1)}}@keyframes mark-off{to{opacity:0;filter:blur(6px);transform:translate(-50%,-50%)scale(.3)}}@keyframes mark-meter{to{width:var(--w)}}.move-mark.still *,.move-mark.still :before{animation-duration:1ms!important;animation-delay:0s!important}.move-mark.still .mark-flash,.move-mark.still .mark-dust,.move-mark.still .mark-glyph{display:none}.move-mark.still .mark-board-wrap{animation:none!important}@container (height<=520px){.mark-stage{flex-flow:wrap;place-content:center;gap:2cqw 4cqw}.mark-board-wrap{width:min(40cqw,80cqh)}.mark-text{width:50cqw}.mark-caption{font-size:4.2cqw}.mark-facts{width:100%}}.players-list{overscroll-behavior:contain;border-top:1px solid var(--line-dim);border-bottom:1px solid var(--line-dim);scrollbar-width:thin;scrollbar-color:rgba(var(--accent-rgb), .35) transparent;flex-direction:column;max-height:260px;margin:8px 0 4px;display:flex;overflow-y:auto}.players-list .chat-empty{padding:18px 12px}.player-row{border-bottom:1px solid var(--line-dim);align-items:center;gap:10px;padding:7px 4px;display:flex}.player-row:last-child{border-bottom:0}.player-id{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.player-name{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;display:flex;overflow:hidden}.player-status{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);white-space:nowrap;font-size:.66rem}.player-dot{background:var(--muted);vertical-align:1px;border-radius:50%;width:7px;height:7px;margin-right:6px;display:inline-block}.status-lobby .player-dot{background:var(--good);box-shadow:0 0 8px rgba(var(--good-rgb), .7)}.status-seeking .player-dot{background:var(--accent-soft);animation:1s ease-in-out infinite chat-blink}.status-playing .player-dot{background:var(--accent)}.status-offline .player-dot,.status-away .player-dot{background:var(--muted);opacity:.5}.status-offline .player-name{color:var(--muted)}.player-row button.tiny{flex-shrink:0;margin:0}.player-remove{padding-inline:6px}.friend-requests{margin:8px 0 0}.friend-requests .player-row{background:rgba(var(--accent-rgb), .08);border:1px solid rgba(var(--accent-rgb), .35);border-radius:8px;margin-bottom:6px;padding:7px 8px}.friend-outgoing{margin:6px 0 2px}.friend-pending{align-items:center;gap:8px;padding:2px 0;display:flex}.friend-pending b{color:var(--text)}.friend-pending button{margin:0;padding:1px 7px}.friend-add{gap:8px;margin:10px 0 4px;display:flex}.friend-add input{flex:1;min-width:0;padding:8px 10px}.friend-add button{white-space:nowrap;margin:0}.challenge-banner.incoming{animation:.35s ease-out both challenge-in}.challenge-banner.incoming:before{background:linear-gradient(180deg, rgba(var(--accent-rgb), .22), #0000 60%), var(--panel)}.challenge-banner.ended:before{background:var(--panel)}@keyframes challenge-in{0%{opacity:0;transform:translateY(-8px)}}.challenge-who{align-items:center;gap:12px;margin-right:22px;display:flex}.challenge-who>div{flex:1;min-width:0}.challenge-who b{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.challenge-left{font-family:var(--mono);letter-spacing:.1em;color:var(--accent-soft);font-variant-numeric:tabular-nums;font-size:.8rem}.challenge-actions{margin-top:4px}.challenge-actions button{margin-bottom:0}.lobby-notice{border:1px solid rgba(var(--accent-rgb), .4);border-left:3px solid var(--accent);color:var(--text);margin:-4px 0 14px;padding:8px 12px;font-size:.92rem;animation:.25s ease-out both challenge-in}
