@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600;9..40,700&family=Fraunces:opsz,wght@9..144,600;9..144,700&display=swap";@font-face{font-family:Chess Cuernavaca;src:url(./ChessCuernavaca-BiXfqVB1.ttf) format("truetype");font-display:swap}:root{font-family:DM Sans,sans-serif;color:#e9e2cf;background:#10150e;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;background:radial-gradient(circle at 82% 8%,#1c2a1d 0 6%,transparent 32%),#10150e}button{font:inherit;cursor:pointer}:focus-visible{outline:2px solid #e07658;outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.app{width:min(1020px,calc(100% - 48px));margin:auto;padding:26px 0 60px}.top{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:28px}.controls{display:flex;gap:10px;flex-wrap:wrap}.menu{position:relative}.menu-toggle{display:flex;align-items:center;gap:7px;padding:11px 16px;border:1px solid #28311f;border-radius:10px;background:#171d13;color:#94a08b;font-size:14px;font-weight:500;transition:border-color .15s,color .15s}.menu-toggle b{color:#e9e2cf;font-weight:700}.menu-toggle:hover,.menu.open .menu-toggle{border-color:#e07658;color:#cfc9b6}.caret{font-size:10px;transform:translateY(1px);transition:transform .15s}.menu.open .caret{transform:translateY(1px) rotate(180deg)}.menu-list{position:absolute;top:calc(100% + 6px);left:0;z-index:20;display:grid;min-width:168px;padding:5px;border:1px solid #28311f;border-radius:10px;background:#171d13;box-shadow:0 14px 34px #000a;animation:rise .15s ease-out}@keyframes rise{0%{transform:translateY(-4px);opacity:0}to{transform:none;opacity:1}}.menu-list button{text-align:left;padding:9px 12px;border:0;border-radius:7px;background:transparent;color:#b9c4ae;font-size:14px;font-weight:500;transition:background .12s,color .12s}.menu-list button:hover{background:#20291c;color:#e9e2cf}.menu-list button.active{color:#e07658;font-weight:700}.actions{display:flex;gap:8px}.action{padding:12px 16px;border:1px solid #28311f;border-radius:10px;background:#171d13;color:#b9c4ae;font-size:14px;font-weight:600;transition:border-color .15s,color .15s}.action:hover:not(:disabled){border-color:#e07658;color:#e9e2cf}.action:disabled{opacity:.4;cursor:default}.new{display:flex;align-items:center;gap:8px;padding:12px 18px;border:1px solid #28311f;border-radius:10px;background:#171d13;color:#e9e2cf;font-size:14px;font-weight:600;transition:border-color .15s,color .15s}.new em{font-style:normal}.new:hover{border-color:#e07658}.new span{color:#e07658;font-size:16px;transition:transform .3s}.new:hover span{transform:rotate(180deg)}.stage{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);gap:44px;align-items:start}.board-side{position:relative;width:min(100%,560px);margin:0 auto}.board-frame{position:relative;padding:0 0 24px 23px}.board{display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);border:8px solid #0b0f0a;border-radius:3px;aspect-ratio:1;overflow:hidden;box-shadow:0 18px 45px #000a}.square{position:relative;display:grid;place-items:center;border:0;padding:0;min-width:0;min-height:0}.square.light{background:#c3d0a6}.square.dark{background:#7f9a63}.square.movable{cursor:grab}.square.selected{outline:3px solid #e07658;outline-offset:-3px}.square.correct:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;background:#7d9c6a45;box-shadow:inset 0 0 0 2px #7d9c6a70}.square.invalid{outline:3px solid #b3402a;outline-offset:-3px;animation:shake .35s ease-in-out}@keyframes shake{0%,to{transform:none}25%{transform:translate(3%)}50%{transform:translate(-3%)}75%{transform:translate(2%)}}.move-hint{position:absolute;z-index:2;width:26%;aspect-ratio:1;border-radius:50%;background:#e0765899;box-shadow:0 0 0 2px #10150e2e;pointer-events:none}.move-hint.capture{width:86%;background:transparent;border:4px solid #e07658aa}.square.hinted:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;border:3px solid #e07658;animation:pulse 1.1s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.25}}.ghost{position:absolute;z-index:2;font-family:Chess Cuernavaca,DM Sans,sans-serif;font-size:clamp(26px,5vw,50px);line-height:1;-webkit-user-select:none;user-select:none;opacity:.45}.ghost.white{color:#f7f3e8;-webkit-text-stroke:1.1px #1c2c23;text-shadow:0 2px 2px #0006}.ghost.black{color:#242b1f}.piece{z-index:2;font-family:Chess Cuernavaca,DM Sans,sans-serif;font-size:clamp(26px,5vw,50px);line-height:1;-webkit-user-select:none;user-select:none}.piece.white{color:#f7f3e8;-webkit-text-stroke:1.6px #1c2c23;paint-order:stroke fill;text-shadow:0 2px 2px #0006}.piece.black{color:#242b1f;-webkit-text-stroke:1px #d8d2bd40;text-shadow:0 2px 2px #0005}.unknown{width:46%;aspect-ratio:1;display:grid;place-items:center;border-radius:50%;background:#22331f;color:#e8dcc0;font:700 clamp(13px,2.2vw,20px) "DM Mono";box-shadow:0 2px 6px #0005}.mark{position:absolute;z-index:3;top:3px;right:4px;font-size:clamp(9px,1.4vw,13px);line-height:1}.mark.correct{color:#2f7a3d}.mark.wrong{color:#b3402a}.coords{position:absolute;color:#6f7f66;font:11px DM Mono;-webkit-user-select:none;user-select:none}.files{display:flex;bottom:0;left:27px;right:0;justify-content:space-around}.ranks{display:flex;top:0;bottom:24px;left:0;flex-direction:column;justify-content:space-around;align-items:center;width:16px}.panel{display:grid;gap:20px;padding:26px;border:1px solid #222a1b;border-radius:14px;background:#161c13;box-shadow:0 18px 40px #0006}.eyebrow{margin:0;color:#e07658;font:500 11px DM Mono;text-transform:uppercase;letter-spacing:1.2px}.score-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.score{display:flex;align-items:baseline;gap:8px}.score b{font:700 42px/1 Fraunces,serif;letter-spacing:-1px}.score span{color:#94a08b;font-size:14px;font-weight:500}.score.won b{color:#7d9c6a}.score-actions{display:flex;gap:8px}.moves-text{padding:18px 20px;border:1px solid #28311f;border-radius:10px;background:#1c2318;color:#cfc9b6;font:15px/1.9 DM Mono;word-spacing:4px}.mnum{color:#6d7a64;margin-right:2px}.san{margin-right:8px}.san.last{color:#e07658;font-weight:700}.more{color:#6d7a64;font-weight:700}.result{margin-left:4px;color:#7d9c6a;font-weight:700}.hint,.success,.learn{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:9px;background:#1d2a1e}.hint span,.success span,.learn span{color:#e07658;font-size:18px}.hint p,.success p,.learn p{margin:0;font-size:13px;line-height:1.55;color:#b9c4ae}.learn a{color:#e07658;text-decoration-color:#e0765866;text-underline-offset:2px;transition:text-decoration-color .15s}.learn a:hover{text-decoration-color:#e07658}.star-row{display:flex;justify-content:center;padding-top:2px}.success{background:#18241a}.success p{color:#cfe0bd;font-weight:600}.success div{display:grid;gap:10px;justify-items:start}.next{padding:8px 14px;font-size:13px}.picker{position:absolute;z-index:30;visibility:hidden;pointer-events:none;width:min(340px,calc(100% - 8px));display:grid;gap:9px;padding:12px 13px;border:1px solid #3a4630;border-radius:11px;background:#1a2216f2;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);box-shadow:0 16px 38px #000c;animation:rise .15s ease-out}@keyframes rise{0%{transform:translateY(5px) scale(.97);opacity:0}to{transform:none;opacity:1}}.picker-head{display:flex;align-items:center;justify-content:space-between}.picker-head span{color:#e07658;font:700 11px DM Mono;text-transform:uppercase;letter-spacing:1.1px}.picker-head .clear{border:0;background:transparent;color:#94a08b;font-size:12px;font-weight:600;padding:4px 0;transition:color .15s}.picker-head .clear:hover{color:#e07658}.picker-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:7px}.picker-grid button{display:grid;place-items:center;aspect-ratio:1;border:1px solid #28311f;border-radius:9px;background:#1c2318;transition:border-color .15s,background .15s}.picker-grid button:hover{border-color:#e07658}.picker-grid button.picked{border-color:#e07658;background:#201a12}.picker-grid button .piece{font-size:clamp(22px,2.6vw,28px)}.picker button,.picker-grid button{pointer-events:auto}.under-board{margin-top:16px;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px;min-height:38px}.ub-turn{font:500 11px DM Mono;text-transform:uppercase;letter-spacing:1px;padding:6px 12px;border-radius:999px;border:1px solid #28311f;background:#171d13}.ub-turn.w{color:#e9e2cf}.ub-turn.b{color:#94a08b}.ub-info{color:#94a08b;font-size:13px}.ub-info b{color:#e07658;font-family:DM Mono}.ub-info.dim{color:#6f7f66}.ub-remove{padding:8px 14px;font-size:13px}.promo{display:flex;gap:6px}.promo button{display:grid;place-items:center;width:38px;height:38px;border:1px solid #28311f;border-radius:8px;background:#1c2318;transition:border-color .15s}.promo button:hover{border-color:#e07658}.promo button .piece{font-size:24px}.promo-cancel{color:#94a08b;font-size:13px;width:30px!important;border:0!important;background:transparent!important}.promo-cancel:hover{color:#e07658}@media(max-width:720px){.app{width:calc(100% - 28px);padding-top:18px}.top{flex-wrap:nowrap;gap:8px;margin-bottom:20px}.controls{flex:1;min-width:0;gap:6px}.menu-toggle{padding:9px 10px;font-size:12px;gap:5px;white-space:nowrap}.menu-list{min-width:150px}.actions{gap:6px}.action{padding:9px 12px;font-size:13px}.new{padding:9px 11px}.new em{display:none}.new span{font-size:15px}.stage{display:flex;flex-direction:column;gap:30px}.board-side{width:100%}.board-frame{padding-left:19px}.files{left:23px}.panel{padding:20px}.picker{width:calc(100% - 26px);padding:9px 10px;gap:8px}.picker-grid{gap:8px}.picker-grid button{border-radius:9px}.picker-grid button .piece{font-size:clamp(22px,6.2vw,32px)}}@media(max-width:380px){.top{flex-wrap:wrap}}.update-bar{position:fixed;bottom:18px;left:50%;transform:translate(-50%);z-index:100;display:flex;align-items:center;gap:14px;padding:12px 16px;border:1px solid #3a4630;border-radius:11px;background:#1a2216f5;box-shadow:0 16px 38px #000c;animation:rise .2s ease-out}.update-bar span{color:#cfc9b6;font-size:13px;font-weight:500;white-space:nowrap}.update-bar button{padding:8px 16px;border:0;border-radius:8px;background:#e07658;color:#17120c;font-size:13px;font-weight:700;transition:filter .15s}.update-bar button:hover:not(:disabled){filter:brightness(1.1)}.update-bar button:disabled{opacity:.6;cursor:default}
