.board{--rx:0deg;--ry:0deg;aspect-ratio:1;background:var(--sq-dark);width:100%;box-shadow:0 0 0 1px var(--line-2), 0 40px 80px -30px #000000e6, 0 12px 30px -12px #000000b3;touch-action:manipulation;-webkit-user-select:none;user-select:none;border-radius:6px;position:relative;overflow:hidden}.board--tilt{transform:perspective(1400px) rotateX(var(--rx)) rotateY(var(--ry));transition:transform .5s var(--ease);will-change:transform}.board__squares{background:conic-gradient(var(--sq-dark) 25%, var(--sq-light) 0 50%, var(--sq-dark) 0 75%, var(--sq-light) 0) 0 0 / 25% 25%;position:absolute;inset:0}.board__squares:after{content:"";background:linear-gradient(135deg,#ffffff0a,#0000 40%,#00000040);position:absolute;inset:0}.board__mark,.board__target{pointer-events:none;width:12.5%;height:12.5%;position:absolute}.board__mark--from{background:#c9a96e29}.board__mark--to{box-shadow:inset 0 0 0 1px var(--accent-line);animation:markIn .5s var(--ease);background:#c9a96e52}.board__mark--check{background:radial-gradient(circle,#c9695f8c,#0000 70%)}.board__mark--sel{box-shadow:inset 0 0 0 2px var(--accent)}.board__mark--glow{box-shadow:inset 0 0 0 1.5px var(--accent);background:#c9a96e1f}@keyframes markIn{0%{opacity:0}}.board__target:after{content:"";background:var(--accent);opacity:.8;border-radius:50%;position:absolute;inset:38%}.board__target.is-capture:after{border:2px solid var(--accent);opacity:.8;background:0 0;inset:8%}.board__piece{width:12.5%;height:12.5%;transition:transform .7s var(--ease);pointer-events:none;position:absolute;top:0;left:0}.board__piece-in{width:100%;height:100%;animation:pieceIn .7s var(--ease) both;display:block}.piece-svg{filter:drop-shadow(0 2px 2px #00000080);width:100%;height:100%}.piece-svg.is-b{filter:drop-shadow(0 0 .6px #f4f1eab3)drop-shadow(0 2px 2px #00000080)}@keyframes pieceIn{0%{opacity:0;transform:translateY(-14%)scale(.9)}}.board__files,.board__ranks{pointer-events:none;font-family:var(--font-mono);color:var(--dim);opacity:.85;font-size:clamp(7px,1.3vw,10px);display:flex;position:absolute}.board__files{bottom:2px;left:0;right:0}.board__files span{text-align:right;flex:1;padding-right:3%}.board__ranks{flex-direction:column;top:0;bottom:0;left:3px}.board__ranks span{flex:1;padding-top:3%}
