.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%)}:root{--bg:#312e2b;--bg-2:#272522;--bg-3:#21201d;--panel:#262421;--raise:#3c3a37;--raise-2:#4b4844;--line:#3f3c38;--fg:#fff;--fg-2:#c3c2c1;--muted:#989795;--green:#81b64c;--green-d:#45753c;--green-ink:#a3d160;--red:#fa412d;--orange:#ffa459;--yellow:#f7c631;--blue:#5c8bb0;--sq-light:#f4f0f1;--sq-dark:#ec93a5;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--fg);overscroll-behavior:none;font:15px/1.45 -apple-system,Segoe UI,Roboto,system-ui,sans-serif;overflow:hidden}button,input,select{font:inherit;color:inherit}button,.btn{cursor:pointer;background:var(--raise);border:0;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:10px 14px;font-size:14px;font-weight:700;text-decoration:none;display:inline-flex}button:active,.btn:active{filter:brightness(1.2)}button:disabled{opacity:.4}button.primary{background:var(--green);color:#fff;box-shadow:0 3px 0 var(--green-d)}button.primary.big{width:100%;margin:12px 0 2px;padding:14px;font-size:17px}button.ghost,.btn.ghost{color:var(--fg-2);background:0 0}input,select{background:var(--bg-3);border:1px solid var(--line);border-radius:8px;outline:none;width:100%;padding:9px 10px}a{color:var(--green-ink)}.muted{color:var(--muted)}.small{font-size:13.5px}.tiny{font-size:12px}.err{color:var(--red)}.pad{padding:16px}.grow{flex:1}.row{align-items:center;gap:8px;display:flex}.between{justify-content:space-between}.center{text-align:center;padding-top:30vh}.center-col{text-align:center;flex-direction:column;align-items:center;display:flex}.boot{height:100%;color:var(--muted);place-items:center;font-size:64px;animation:1.2s infinite pulse;display:grid}@keyframes pulse{50%{opacity:.4}}.big-ico{margin:16px 0 4px;font-size:64px}.h1{margin:2px 0 8px;font-size:22px;font-weight:800}.h2{margin:2px 0 4px;font-size:18px;font-weight:800}.md p{margin:0 0 6px}.md p:last-child{margin:0}.shell{flex-direction:column;height:100%;display:flex}.page{flex:1;min-height:0}.scroll{height:100%;padding:14px 14px 30px;overflow-y:auto}.tabs{background:var(--bg-3);padding:4px 4px calc(4px + env(safe-area-inset-bottom));border-top:1px solid var(--line);grid-template-columns:repeat(4,1fr);display:grid}.tabs button{color:var(--muted);background:0 0;flex-direction:column;gap:1px;padding:6px 0;font-size:11px}.tabs button span{font-size:20px;line-height:1.1}.tabs button.on{color:var(--fg)}.card{background:var(--panel);border-radius:12px;margin:0 0 12px;padding:14px}.card.locked{opacity:.55}.card.tip{background:#2b3324;font-size:13.5px}.hello{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.rating{text-align:right}.rating b{font-size:28px;line-height:1;display:block}.rating span{color:var(--muted);font-size:11px}.kv{margin-top:10px;font-size:13px}.kv span{margin-bottom:4px;display:block}.bar{background:var(--bg-3);border-radius:4px;height:8px;margin:6px 0;overflow:hidden}.bar>div{background:var(--green);border-radius:4px;height:100%;transition:width .3s}.today{text-align:center;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px;display:grid}.today b{font-size:22px;display:block}.today span{color:var(--muted);font-size:11.5px}.chip{background:var(--raise);border-radius:10px;margin-left:auto;padding:1px 8px;font-size:12px;font-weight:700}.tags{flex-wrap:wrap;gap:6px;margin:8px 0 2px;display:flex}.tag{background:var(--raise);border-radius:12px;padding:3px 10px;font-size:12.5px}.field{color:var(--fg-2);margin-top:12px;font-size:13px;display:block}.field>*{margin-top:5px}.spark{width:100%;height:auto;margin:8px 0;display:block}.spark-t{fill:var(--muted);font-size:11px}.dots{flex-wrap:wrap;justify-content:center;gap:5px;margin:4px 0 10px;display:flex}.dots span{border-radius:50%;width:12px;height:12px}.dots .ok{background:var(--green)}.dots .bad{background:var(--red)}.lesson{margin-top:10px}.lines{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.line{padding:7px 10px;font-size:12.5px;font-weight:600}.line.started{box-shadow:inset 0 -2px 0 var(--orange)}.line.learned{box-shadow:inset 0 -2px 0 var(--green)}.mistake{text-align:left;background:var(--panel);justify-content:flex-start;gap:10px;width:100%;margin-bottom:8px;padding:12px;font-weight:500}.state{color:var(--orange);white-space:nowrap;font-size:11.5px}.state.ok{color:var(--green)}.state.new{color:var(--blue)}.side-dot{vertical-align:-1px;border:1px solid #000;border-radius:3px;flex:none;width:12px;height:12px;display:inline-block}.side-dot.w{background:#fff}.side-dot.b{background:#2b2b2b;border-color:#777}.session{flex-direction:column;height:100%;display:flex}.progress{align-items:center;gap:8px;padding:8px 10px 4px;display:flex}.progress .bar{flex:1;margin:0}.x{padding:4px 10px;font-size:18px}.runner{flex-direction:column;flex:1;padding:4px 10px 20px;display:flex;overflow-y:auto}.task-head{align-items:center;gap:7px;padding:4px 2px 8px;font-size:15px;font-weight:700;display:flex}.note{color:var(--fg-2);background:var(--panel);border-radius:10px;margin-bottom:8px;padding:8px 10px;font-size:13.5px}.fb{border-radius:10px;margin-top:10px;padding:9px 12px;font-size:14px}.fb.good{border-left:4px solid var(--green);background:#2e3d22}.fb.bad{border-left:4px solid var(--red);background:#3f2420}.fb.info{background:var(--panel);border-left:4px solid var(--blue)}.actions{gap:8px;margin-top:10px;display:flex}.actions .grow{flex:1}.board-shell{aspect-ratio:1;touch-action:none;width:100%;position:relative}.cg-wrap-host{width:100%;height:100%}cg-board{background-image:url(/theme/board.png);border-radius:4px}cg-board square.last-move,cg-board square.selected{background-color:#ffff3380}cg-board square.check{background:radial-gradient(red 0%,#e70000 25%,#a9000000 89%,#9e000000 100%)}cg-board square.move-dest{background:radial-gradient(#00000024 19%,#0000 20%)}cg-board square.oc.move-dest{background:radial-gradient(#0000 0% 79%,#00000024 80%)}.cg-wrap piece.pawn.white{background-image:url(/theme/pieces/wp.png)}.cg-wrap piece.knight.white{background-image:url(/theme/pieces/wn.png)}.cg-wrap piece.bishop.white{background-image:url(/theme/pieces/wb.png)}.cg-wrap piece.rook.white{background-image:url(/theme/pieces/wr.png)}.cg-wrap piece.queen.white{background-image:url(/theme/pieces/wq.png)}.cg-wrap piece.king.white{background-image:url(/theme/pieces/wk.png)}.cg-wrap piece.pawn.black{background-image:url(/theme/pieces/bp.png)}.cg-wrap piece.knight.black{background-image:url(/theme/pieces/bn.png)}.cg-wrap piece.bishop.black{background-image:url(/theme/pieces/bb.png)}.cg-wrap piece.rook.black{background-image:url(/theme/pieces/br.png)}.cg-wrap piece.queen.black{background-image:url(/theme/pieces/bq.png)}.cg-wrap piece.king.black{background-image:url(/theme/pieces/bk.png)}.cg-wrap coords{opacity:1;font-size:10px;font-weight:700}.cg-wrap coords.ranks{width:10px;height:100%;top:1px;left:2px}.cg-wrap coords.ranks coord{padding-top:1px;transform:none}.cg-wrap coords.files{text-transform:none;width:100%;height:auto;bottom:0;left:0}.cg-wrap coords.files coord{text-align:right;padding-right:3px}.cg-wrap coords.ranks:not(.black) coord:nth-child(odd),.cg-wrap coords.ranks.black coord:nth-child(2n){color:var(--sq-light)}.cg-wrap coords.ranks:not(.black) coord:nth-child(2n),.cg-wrap coords.ranks.black coord:nth-child(odd){color:var(--sq-dark)}.cg-wrap coords.files:not(.black) coord:nth-child(odd),.cg-wrap coords.files.black coord:nth-child(2n){color:var(--sq-light)}.cg-wrap coords.files:not(.black) coord:nth-child(2n),.cg-wrap coords.files.black coord:nth-child(odd){color:var(--sq-dark)}.promo-veil{z-index:20;background:#00000059;position:absolute;inset:0}.promo{background:#fff;border-radius:4px;width:12.5%;display:flex;position:absolute;overflow:hidden;box-shadow:0 4px 18px #00000080}.promo button{aspect-ratio:1;background-color:#fff;background-size:cover;border-radius:0;width:100%;padding:0}
