.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-board{background-color:#f0d9b5;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIgogICAgIHZpZXdCb3g9IjAgMCA4IDgiIHNoYXBlLXJlbmRlcmluZz0iY3Jpc3BFZGdlcyI+CjxnIGlkPSJhIj4KICA8ZyBpZD0iYiI+CiAgICA8ZyBpZD0iYyI+CiAgICAgIDxnIGlkPSJkIj4KICAgICAgICA8cmVjdCB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBpZD0iZSIgb3BhY2l0eT0iMCIvPgogICAgICAgIDx1c2UgeD0iMSIgeT0iMSIgaHJlZj0iI2UiIHg6aHJlZj0iI2UiLz4KICAgICAgICA8cmVjdCB5PSIxIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBpZD0iZiIgb3BhY2l0eT0iMC4yIi8+CiAgICAgICAgPHVzZSB4PSIxIiB5PSItMSIgaHJlZj0iI2YiIHg6aHJlZj0iI2YiLz4KICAgICAgPC9nPgogICAgICA8dXNlIHg9IjIiIGhyZWY9IiNkIiB4OmhyZWY9IiNkIi8+CiAgICA8L2c+CiAgICA8dXNlIHg9IjQiIGhyZWY9IiNjIiB4OmhyZWY9IiNjIi8+CiAgPC9nPgogIDx1c2UgeT0iMiIgaHJlZj0iI2IiIHg6aHJlZj0iI2IiLz4KPC9nPgo8dXNlIHk9IjQiIGhyZWY9IiNhIiB4OmhyZWY9IiNhIi8+Cjwvc3ZnPg==)}cg-board square.move-dest{background:radial-gradient(#14551e80 22%,#208530 0,#0000004d 0,#0000 0)}cg-board square.premove-dest{background:radial-gradient(#141e5580 22%,#203085 0,#0000004d 0,#0000 0)}cg-board square.oc.move-dest{background:radial-gradient(#0000 0% 80%,#1455004d 80%)}cg-board square.oc.premove-dest{background:radial-gradient(#0000 0% 80%,#141e5533 80%)}cg-board square.move-dest:hover,cg-board square.move-dest.hover{background:#14551e4d}cg-board square.premove-dest:hover,cg-board square.premove-dest.hover{background:#141e5533}cg-board square.last-move{background-color:#9bc70069}cg-board square.selected{background-color:#14551e80}cg-board square.check{background:radial-gradient(red 0%,#e70000 25%,#a9000000 89%,#9e000000 100%)}cg-board square.current-premove{background-color:#141e5580}.orientation-white .ranks :nth-child(odd),.orientation-white .files :nth-child(2n),.orientation-black .ranks :nth-child(2n),.orientation-black .files :nth-child(odd),coords.squares:nth-of-type(odd) :nth-child(2n),coords.squares:nth-of-type(2n) :nth-child(odd){color:#484848cc}.orientation-white .ranks :nth-child(2n),.orientation-white .files :nth-child(odd),.orientation-black .ranks :nth-child(odd),.orientation-black .files :nth-child(2n),coords.squares:nth-of-type(odd) :nth-child(odd),coords.squares:nth-of-type(2n) :nth-child(2n){color:#fffc}.cg-wrap{--board-light:#f0d9b5;--board-dark:#b58863}cg-board{background-color:var(--board-light);background-image:conic-gradient(var(--board-dark) 25%, var(--board-light) 0 50%, var(--board-dark) 0 75%, var(--board-light) 0);background-size:25% 25%}.board.cg-wrap coords{opacity:1;font-size:clamp(11px,2.3vmin,14px);font-weight:700}.board.cg-wrap coords.ranks coord,.board.cg-wrap coords.files coord{color:#1c2431;text-shadow:0 0 3px #ffffffd9,0 0 1px #ffffffd9}.board.cg-wrap coords.ranks{width:14px;left:3px}.board.cg-wrap coords.files{height:18px;bottom:-2px}.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=)}*,:before,:after{box-sizing:border-box}body{color:#eee;background:#2b2b2b;min-height:100vh;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}#app{align-items:flex-start;gap:24px;padding:24px;display:flex}.stage{flex-direction:column;flex:none;gap:6px;display:flex}.board{flex:none;width:560px;height:560px}.board-row{align-items:stretch;gap:6px;display:flex;position:relative}.spectator-gone{visibility:hidden}.spectator piece.king-jump{animation:1.5s ease-in-out king-jump}.spectator piece.king-sit{animation:1.2s ease-out forwards king-sit}.spectator piece.king-nod{animation:1s ease-in-out king-nod}@keyframes king-jump{0%,to{transform:translateY(0)scale(1)}12%{transform:translateY(-22px)scale(1.06)}24%{transform:translateY(0)scale(.96,1.04)}40%{transform:translateY(-28px)scale(1.08)rotate(-6deg)}56%{transform:translateY(0)scale(.96,1.04)}72%{transform:translateY(-16px)scale(1.04)rotate(5deg)}86%{transform:translateY(0)scale(1)}}@keyframes king-sit{0%{transform:translateY(0)rotate(0)}40%{transform:translateY(4px)rotate(-4deg)}to{opacity:.85;transform:translateY(10px)rotate(-14deg)scale(.94)}}@keyframes king-nod{0%,to{transform:rotate(0)}30%{transform:rotate(8deg)translateY(2px)}60%{transform:rotate(-3deg)}}@media (prefers-reduced-motion:reduce){.spectator piece.king-jump,.spectator piece.king-sit,.spectator piece.king-nod{animation:none}}.announce{z-index:3;text-align:center;color:#ffd84a;-webkit-text-stroke:.04em #3a2208;paint-order:stroke fill;text-shadow:.04em .05em #3a2208,0 .1em .3em #00000080;pointer-events:none;-webkit-user-select:none;user-select:none;flex-direction:column;align-items:center;gap:.2em;max-width:96%;padding:.3em .6em;font-size:clamp(1.6rem,6vmin,3rem);font-weight:900;line-height:1.1;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.announce[hidden]{display:none}.announce-sub{color:#fff7dc;font-size:.5em}.eval-bar{background:#2a2a2a;border-radius:4px;flex-direction:column-reverse;flex:none;width:14px;display:flex;position:relative;overflow:hidden}.eval-bar.flipped{flex-direction:column}.eval-fill{background:#f2f2f2;width:100%;transition:height .25s ease-out}.eval-text{color:#ddd;white-space:nowrap;pointer-events:none;font-size:.6rem;font-weight:700;position:absolute;bottom:22px;left:50%;transform:translate(-50%)rotate(-90deg)}.eval-bar.flipped .eval-text{top:22px;bottom:auto}.eval-text.on-white,.eval-bar.flipped .eval-text.on-white,.eval-bar:not(.flipped) .eval-text.on-white{color:#333}.analyse{font:inherit;color:#eee;cursor:pointer;background:0 0;border:1px solid #666;border-radius:6px;padding:6px 10px;font-size:.9rem}.analyse:disabled{opacity:.5;cursor:default}.puzzle-panel,.endgame-panel{background:#242424;border:1px solid #444;border-radius:6px;flex-direction:column;gap:6px;padding:8px;font-size:.85rem;display:flex}.puzzle-panel[hidden],.endgame-panel[hidden]{display:none}.puzzle-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.puzzle-row label{align-items:center;gap:4px;display:flex}.puzzle-row select{font:inherit;color:#eee;background:#1e1e1e;border:1px solid #555;border-radius:4px;padding:3px 4px}.puzzle-row button{font:inherit;color:#eee;cursor:pointer;background:0 0;border:1px solid #666;border-radius:6px;padding:5px 10px}.puzzle-info,.puzzle-progress{color:#b8bec8;font-size:.8rem}.puzzle-msg{color:#7fd17a;min-height:1.1em}.puzzle-msg.us-error{color:#ffa459}.games-dialog{color:#eee;background:#2b2b2b;border:none;border-radius:8px;width:min(92vw,640px);max-height:92vh;padding:16px 20px}.games-dialog::backdrop{background:#0009}.games-dialog h2,.games-dialog h3{margin:0 0 8px}.games-list{max-height:40vh;margin:0 0 10px;padding:0;list-style:none;overflow:auto}.games-list li{border-bottom:1px solid #3a3a3a;align-items:center;gap:8px;padding:6px 0;display:flex}.games-info{flex-direction:column;flex:1;font-size:.85rem;display:flex}.games-date{color:#b8bec8;font-size:.75rem}.games-meta{color:#8a8f98;font-size:.75rem}.games-list button,.games-pgn button{font:inherit;color:#eee;cursor:pointer;background:0 0;border:1px solid #666;border-radius:6px;margin-right:6px;padding:6px 12px;font-size:.85rem}.games-pgn textarea{width:100%;font:inherit;color:#eee;resize:vertical;background:#1e1e1e;border:1px solid #555;border-radius:4px;margin:6px 0 8px;padding:6px;font-size:.8rem}.games-dialog .us-msg{color:#7fd17a;min-height:1.2em;margin:6px 0;font-size:.9rem}.games-dialog .us-msg.us-error{color:#ffa459}.games-dialog .us-note{color:#b8bec8;margin:0 0 10px;font-size:.85rem}.spectator{--spectator-size:64px;align-items:center;gap:12px;height:64px;display:flex;position:relative}.spectator piece{width:var(--spectator-size);height:var(--spectator-size);pointer-events:none;flex:none;display:block;position:static}.bubble{color:#222;background:#f7f3e8;border-radius:14px;max-width:440px;padding:8px 12px;font-size:.95rem;line-height:1.3;position:relative}.bubble:before{content:"";border:6px solid #0000;border-left:0;border-right:9px solid #f7f3e8;position:absolute;top:50%;left:-9px;transform:translateY(-50%)}.bubble-in{animation:.15s ease-out bubble-in}@keyframes bubble-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.bubble-in{animation:none}}.review-controls{gap:6px;display:flex}.review-controls[hidden]{display:none}.review-controls button{font:inherit;color:#eee;cursor:pointer;background:0 0;border:1px solid #666;border-radius:6px;flex:1;padding:6px 0;font-size:1rem}.review-controls button:disabled{opacity:.35;cursor:default}.move-list .current{background:#4a5d3a;border-radius:4px;margin:0 -4px;padding:0 4px}.panel{flex-direction:column;gap:16px;width:280px;height:560px;margin-top:70px;display:flex}.panel h1{margin:0;font-size:1.5rem;line-height:1.2}.panel h1 .subtitle{color:#b8bec8;font-size:.8rem;font-weight:400;display:block}.matchup{color:#b8bec8;font-size:.85rem}.status{min-height:1.5em;font-size:1.125rem;font-weight:600}.move-list{background:#1e1e1e;border-radius:6px;flex:1;min-height:0;margin:0;padding:8px;font-family:ui-monospace,Consolas,Courier New,monospace;font-size:.95rem;list-style:none;overflow-y:auto}.move-list li{grid-template-columns:2.5em 1fr 1fr;gap:4px;padding:2px 4px;display:grid}.move-list li:nth-child(2n){background:#262626}.move-list .move-number{color:#888;text-align:right}.move-list .glyph{margin-left:1px;font-weight:700}.glyph-brilliant{color:#1baca6}.glyph-great{color:#5b8baf}.glyph-interesting{color:#d7a52a}.glyph-inaccuracy{color:#f7c631}.glyph-mistake{color:#ffa459}.glyph-blunder{color:#fa412d}.controls{flex-direction:column;gap:6px;font-size:.95rem;display:flex}.controls label{justify-content:space-between;align-items:center;gap:8px;display:flex}.controls select{min-width:140px;font:inherit;color:#eee;background:#1e1e1e;border:1px solid #555;border-radius:4px;padding:4px 6px}.settings>summary,.moves>summary{cursor:pointer;-webkit-user-select:none;user-select:none;padding:4px 0;font-weight:600;list-style:none}.settings>summary::-webkit-details-marker{display:none}.moves>summary::-webkit-details-marker{display:none}.settings>summary:before,.moves>summary:before{content:"▸ ";color:#888}.settings[open]>summary:before,.moves[open]>summary:before{content:"▾ "}.settings>.controls{margin-top:8px}.moves{flex-direction:column;flex:1;min-height:0;display:flex}.moves:not([open]){flex:none}.moves::details-content{flex-direction:column;flex:1;min-height:0;display:flex}.moves-summary{color:#aaa;font-family:ui-monospace,Consolas,Courier New,monospace;font-weight:400}.buttons{flex-wrap:wrap;gap:8px;display:flex}.credits{color:#8a8f98;margin-top:auto;font-size:.72rem;line-height:1.4}.credits a{color:inherit}.credits .mission{color:#b8bec8;margin:0 0 6px;font-size:.8rem}.credits .feedback-line{margin:0 0 8px;font-size:.85rem}.credits .feedback{color:#7fd17a;font-weight:600}.credits .build{color:#8a8f98;margin-left:8px;font-size:.72rem}.new-game.start{animation:1.6s ease-in-out infinite start-pulse}@keyframes start-pulse{50%{filter:brightness(1.18)}}@media (prefers-reduced-motion:reduce){.new-game.start{animation:none}}.buttons button{min-width:7em;font:inherit;color:#f2f2f2;cursor:pointer;background:#3a3f46;border:1px solid #5a6069;border-radius:6px;flex:auto;padding:10px 16px;font-size:1rem;font-weight:600}.buttons button:hover:not(:disabled){background:#474d55}.buttons button:disabled{opacity:.5;cursor:default}.buttons .new-game,.buttons .undo{color:#fff;border:none}.buttons .new-game{background:#4caf50}.buttons .new-game:hover{background:#43a047}.buttons .undo{background:#546e7a}.buttons .undo:hover:not(:disabled){background:#455a64}.controls select:disabled{opacity:.5;cursor:default}.promotion-dialog{color:#eee;text-align:center;background:#2b2b2b;border:none;border-radius:8px;padding:16px 20px}.promotion-dialog::backdrop{background:#0009}.promotion-title{margin:0 0 12px;font-weight:600}.promotion-pieces{gap:8px;display:flex}.promotion-choice{cursor:pointer;background:#f0d9b5;border:2px solid #0000;border-radius:6px;padding:6px}.promotion-choice:hover,.promotion-choice:focus-visible{border-color:#4caf50;outline:none}.promotion-dialog .cg-wrap piece{pointer-events:none;width:64px;height:64px;display:block;position:static}.promotion-cancel{font:inherit;color:#eee;cursor:pointer;background:0 0;border:1px solid #666;border-radius:6px;margin-top:12px;padding:6px 14px}.user-sets-open{font:inherit;color:#eee;cursor:pointer;background:0 0;border:1px solid #666;border-radius:6px;grid-column:1/-1;padding:6px 10px;font-size:.9rem}.user-sets-dialog{color:#eee;background:#2b2b2b;border:none;border-radius:8px;width:min(92vw,720px);max-height:92vh;padding:16px 20px}.user-sets-dialog::backdrop{background:#0009}.user-sets-dialog h2,.user-sets-dialog h3{margin:0 0 8px}.user-sets-dialog .us-note{color:#b8bec8;margin:0 0 10px;font-size:.85rem}.user-sets-dialog .us-warn{color:#f7c631}.us-controls{flex-wrap:wrap;gap:12px;margin-bottom:10px;display:flex}.us-controls label{align-items:center;gap:6px;display:flex}.us-controls select,.us-controls input{font:inherit;color:#eee;background:#1e1e1e;border:1px solid #555;border-radius:4px;padding:4px 6px}.us-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.us-slot{cursor:pointer;background:#1e1e1e;border:1px solid #444;border-radius:6px;grid-template-rows:auto auto;grid-template-columns:56px 1fr;align-items:center;column-gap:8px;padding:6px;display:grid}.us-thumb{background:#dce6f0 50%/contain no-repeat;border-radius:4px;grid-row:1/3;width:56px;height:56px}.us-label{font-size:.85rem}.us-status{color:#888;font-size:.75rem}.us-status.us-ok{color:#7fd17a}.us-slot input[type=file]{color:#aaa;grid-column:1/-1;width:100%;font-size:.7rem}.us-msg{color:#7fd17a;min-height:1.2em;margin:10px 0;font-size:.9rem}.us-msg.us-error{color:#ffa459}.us-actions{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.us-actions button,.us-copy{font:inherit;color:#eee;cursor:pointer;background:0 0;border:1px solid #666;border-radius:6px;padding:8px 14px}.us-actions .us-save{color:#fff;background:#4caf50;border-color:#4caf50}.us-prompt{border-top:1px solid #444;padding-top:10px}.us-prompt p{color:#b8bec8;margin:0 0 8px;font-size:.85rem}@media (width<=899px){#app{flex-direction:column;align-items:stretch;gap:12px;padding:12px}.board{aspect-ratio:1;align-self:center;width:min(100vw - 24px,560px);height:auto}.panel{width:100%;height:auto;margin-top:0}.stage{align-self:center;gap:4px;width:min(100vw - 24px,560px)}.board,.board-row{width:100%}.board-row .board{flex:1;min-width:0}.spectator{--spectator-size:48px;gap:8px;height:48px}.bubble{max-width:calc(100% - 60px);padding:6px 10px;font-size:.85rem}.panel h1{font-size:1.25rem}.move-list{flex:none;min-height:96px;max-height:30vh}.controls select{min-width:160px}}.broadcasts-dialog{color:#eee;background:#2b2b2b;border:none;border-radius:8px;width:min(92vw,640px);max-height:92vh;padding:16px 20px}.broadcasts-dialog::backdrop{background:#0009}.broadcasts-dialog h2{margin:0 0 8px}.broadcasts-dialog .us-note{color:#b8bec8;margin:0 0 8px;font-size:.85rem}.broadcasts-dialog .us-msg{color:#7fd17a;min-height:1.2em;margin:4px 0}.broadcasts-dialog .us-msg.us-error{color:#ffa459}.bc-back{font:inherit;color:#eee;cursor:pointer;background:0 0;border:1px solid #666;border-radius:6px;margin-bottom:6px;padding:4px 10px}.bc-back[hidden]{display:none}.bc-title{min-height:1.2em;margin:0 0 6px}.bc-list{max-height:50vh}.bc-list button:disabled{opacity:.4;cursor:default}.games-chesscom{border-top:1px solid #444;margin-bottom:10px;padding-top:10px}.games-chesscom .us-note{color:#b8bec8;margin:0 0 8px;font-size:.85rem}.games-cc-row{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:6px;display:flex}.games-cc-row input,.games-cc-row select{font:inherit;color:#eee;background:#1e1e1e;border:1px solid #555;border-radius:6px;min-width:0;padding:6px 8px}.games-cc-row input{flex:160px}.games-cc-row button{font:inherit;color:#fff;cursor:pointer;background:#4caf50;border:1px solid #4caf50;border-radius:6px;padding:6px 12px}.games-cc-row button:disabled{opacity:.6;cursor:default}.games-cc-list{max-height:32vh}.games-stats{flex-wrap:wrap;gap:8px 24px;margin-bottom:12px;display:flex}.games-stats h3{width:100%;margin:0}.stats-table{border-collapse:collapse;font-size:.85rem}.stats-table caption{text-align:left;color:#b8bec8;padding-bottom:2px;font-weight:600}.stats-table th{color:#8a8f98;text-align:left;padding:0 10px 2px 0;font-size:.75rem;font-weight:400}.stats-table td{color:#eee;padding:1px 10px 1px 0}.stats-table tr.stats-total td{border-top:1px solid #444;font-weight:600}.campaign-bar{color:#d8e6c8;background:#24301e;border:1px solid #4a5a3a;border-radius:6px;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:6px 8px;font-size:.85rem;display:flex}.campaign-bar[hidden]{display:none}.campaign-bar button{font:inherit;color:#eee;cursor:pointer;background:0 0;border:1px solid #666;border-radius:6px;padding:4px 10px}.campaign-bar .campaign-next{color:#fff;background:#4caf50;border-color:#4caf50;font-weight:600}.campaign-dialog{color:#eee;background:#2b2b2b;border:none;border-radius:8px;width:min(94vw,720px);max-height:92vh;padding:16px 20px}.campaign-dialog::backdrop{background:#0009}.campaign-dialog h2{margin:0 0 8px}.campaign-dialog .us-note{color:#b8bec8;margin:0 0 8px;font-size:.85rem}.campaign-progress{color:#7fd17a;margin:0 0 10px;font-weight:600}.campaign-grid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px;max-height:55vh;margin:0 0 12px;padding:0;list-style:none;display:grid;overflow:auto}.campaign-tile{text-align:center;background:#222;border:2px solid #444;border-radius:8px;flex-direction:column;align-items:center;gap:2px;padding:8px 4px 6px;font-size:.78rem;display:flex;position:relative}.campaign-tile img{object-fit:contain;filter:grayscale()brightness(.55);width:64px;height:64px}.campaign-tile.is-defeated img,.campaign-tile.is-next img,.campaign-tile.is-current img{filter:none}.campaign-tile.is-defeated{background:#22301f;border-color:#4caf50}.campaign-tile.is-skipped{border-style:dashed}.campaign-tile.is-next{border-color:#ffd84a;box-shadow:0 0 0 2px #ffd84a59}.campaign-mark{color:#7fd17a;font-size:1rem;position:absolute;top:4px;right:6px}.campaign-tile.is-skipped .campaign-mark{color:#b8bec8}.campaign-name{font-weight:600}.campaign-sub{color:#b8bec8;min-height:1em;font-size:.72rem}.campaign-tile-controls{gap:3px;margin-top:4px;display:flex}.campaign-tile-controls button{font:inherit;color:#eee;cursor:pointer;background:0 0;border:1px solid #555;border-radius:4px;padding:2px 6px;font-size:.72rem}.campaign-tile-controls button:disabled{opacity:.3;cursor:default}.campaign-dialog .us-actions{margin-bottom:0}.campaign-dialog .us-actions button:disabled{opacity:.5;cursor:default}.intro{z-index:100;color:#fff;--side-top:#6f9a3e;--side-bottom:#2f4a1c;background:#3b6ea5;position:fixed;inset:0;overflow:hidden}.intro-fit{aspect-ratio:1024/1536;width:max(100vw,66.6667vh);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@media (aspect-ratio>=4/5){.intro{background:linear-gradient(var(--side-top), var(--side-bottom))}.intro-fit{width:auto;height:100%}}.intro-fit>img{object-fit:fill;width:100%;height:100%;display:block;position:absolute;inset:0}.intro-stage{transform-origin:50% 60%;position:absolute;inset:0}.intro-pieces{position:absolute;inset:0}.intro-piece{left:var(--x);top:var(--y);width:calc(var(--size) * 1.18);aspect-ratio:1;opacity:0;position:absolute;transform:translate(-50%,-100%)}.intro-piece-far{z-index:1}.intro-piece-near{z-index:2}.intro-piece img{object-fit:contain;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.intro-piece:after{content:"";opacity:0;z-index:-1;background:#00000059;border-radius:50%;height:12%;position:absolute;bottom:-3%;left:15%;right:15%}.intro-piece.landed{animation:.38s cubic-bezier(.25,.8,.3,1) forwards intro-land}.intro-piece.landed:after{animation:.38s ease-out forwards intro-shadow}@keyframes intro-land{0%{opacity:1;transform:translate(calc(-50% + var(--drift)), calc(-100% - 60vh)) scale(.6)}68%{opacity:1;transform:translate(-50%,-100%)scale(1)}78%{transform:translate(-50%,-100%)scale(1.14,.84)}90%{transform:translate(-50%,-100%)scale(.96,1.05)}to{opacity:1;transform:translate(-50%,-100%)scale(1)}}@keyframes intro-shadow{0%{opacity:0;background:#00000059;transform:scale(.3)}68%{opacity:.6;transform:scale(1)}80%{opacity:1;background:#ffffdc8c;transform:scale(1.35)}to{opacity:.7;background:#00000059;transform:scale(1)}}.intro-flash{opacity:0;pointer-events:none;background:#fff;position:absolute;inset:0}.intro-beat .intro-stage{animation:.16s ease-out forwards intro-zoom}.intro-beat .intro-flash{animation:.22s ease-out intro-flash}@keyframes intro-zoom{to{transform:scale(1.03)}}@keyframes intro-flash{0%{opacity:0}35%{opacity:.6}to{opacity:0}}.intro-crossfade .intro-stage{animation:.45s ease-in forwards intro-stage-out}@keyframes intro-stage-out{0%{opacity:1;transform:scale(1.03)}to{opacity:0;transform:scale(1.09)}}.splash{transform-origin:50% 55%;position:absolute;inset:0}.intro-crossfade .splash{animation:.45s ease-out forwards splash-in}@keyframes splash-in{0%{opacity:0;transform:scale(1.06)}to{opacity:1;transform:scale(1)}}.splash-bg{opacity:0;transition:opacity .3s ease-out}.splash-bg.loaded{opacity:1}.splash-title{letter-spacing:.02em;text-align:center;text-transform:uppercase;color:#ffd84a;pointer-events:none;flex-direction:column;align-items:center;gap:.05em;width:min(96vw,86.6667vh);margin:0;font-family:Segoe UI Black,system-ui,Trebuchet MS,sans-serif;font-size:clamp(2.2rem,9vmin,5.5rem);font-weight:900;line-height:1;display:flex;position:absolute;top:max(2.5vh,12px);left:50%;transform:translate(-50%)rotate(-3deg)}.splash-word{color:#4a2a10;-webkit-text-fill-color:#4a2a10;-webkit-text-stroke:.09em #4a2a10;text-shadow:.04em .05em #4a2a10,0 .12em .2em #00000059;position:relative}.splash-word:after{content:attr(data-text);background:linear-gradient(#fff2a8,#ffb400);-webkit-text-fill-color:transparent;-webkit-text-stroke:0;text-shadow:none;-webkit-background-clip:text;background-clip:text;position:absolute;inset:0}.splash-word:nth-child(2){font-size:1.25em}.splash-word:nth-child(2):after{background:linear-gradient(#ffd27a,#ff6a1a);-webkit-background-clip:text;background-clip:text}.splash-subtitle{letter-spacing:.12em;text-transform:none;color:#fff7dc;-webkit-text-stroke:.06em #4a2a10;text-shadow:.05em .07em #4a2a10;margin-top:.25em;font-size:.38em;position:relative}.splash-bottom{flex-direction:column;align-items:center;gap:10px;display:flex;position:absolute;bottom:max(2.5vh,12px);left:50%;transform:translate(-50%)}.splash-play{min-width:11em;min-height:64px;font:inherit;letter-spacing:.08em;color:#fff;cursor:pointer;text-shadow:0 2px #00000059;background:linear-gradient(#6fd06b,#3d9a3a);border:3px solid #1f4d1d;border-radius:999px;padding:14px 48px;font-family:Segoe UI Black,system-ui,Trebuchet MS,sans-serif;font-size:clamp(1.4rem,5vmin,2.2rem);font-weight:900;box-shadow:0 6px #1f4d1d,0 12px 24px #00000059}.splash-play:hover{filter:brightness(1.06)}.splash-play:active{transform:translateY(4px);box-shadow:0 2px #1f4d1d,0 8px 16px #00000059}.splash-play:focus-visible{outline-offset:3px;outline:4px solid #fff}.splash-never{font:inherit;color:#fff;cursor:pointer;background:#00000073;border:1px solid #fff6;border-radius:999px;padding:6px 12px;font-size:.85rem}.splash-never:focus-visible{outline:3px solid #fff}.intro-leaving{pointer-events:none;animation:.22s ease-in forwards intro-out}@keyframes intro-out{to{opacity:0}}@media (prefers-reduced-motion:reduce){.intro-crossfade .splash,.intro-leaving,.intro-piece.landed,.intro-beat .intro-stage,.intro-beat .intro-flash{animation:none}.splash-bg{transition:none}}
