.board-wrap{width:100%;margin:0 auto}.board-wrap.coords-outside{container-type:inline-size;display:grid;grid-template-columns:2.8cqi 1fr;grid-template-rows:1fr 2.8cqi;align-items:stretch}.coords-outside .board{grid-column:2;grid-row:1}.coords-outside .ranks-gutter{grid-column:1;grid-row:1;flex-direction:column}.coords-outside .files-gutter{grid-column:2;grid-row:2;flex-direction:row}.ranks-gutter,.files-gutter{display:flex;font-family:var(--font-mono);font-size:1.7cqi;font-weight:600;color:var(--text-dim);-webkit-user-select:none;user-select:none;pointer-events:none}.ranks-gutter span,.files-gutter span{flex:1;display:flex;align-items:center;justify-content:center}.board{position:relative;container-type:inline-size;display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);aspect-ratio:1;border-radius:5px;overflow:hidden;background:var(--board-frame);box-shadow:0 10px 30px -16px #0009,0 0 0 1px #00000059;-webkit-user-select:none;user-select:none;touch-action:none}html.board-contrast-adj .board{filter:contrast(var(--board-contrast))}html.board-dim-adj .board:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;background:rgba(0,0,0,var(--board-dim))}.sq.movable{cursor:grab}.board.dragging,.board.dragging .sq.interactive{cursor:grabbing}.board.dragging .piece{transition:none}.sq.over{box-shadow:inset 0 0 0 2px var(--square-hover)}@media(hover:hover)and (pointer:fine){.board:not(.dragging) .sq.movable:hover:not(.focus-ring){box-shadow:inset 0 0 0 2px var(--square-hover)}}.sq.focus-ring{box-shadow:inset 0 0 0 3px var(--focus),inset 0 0 0 6px #00000073;z-index:2}.drag-ghost{position:fixed;left:0;top:0;z-index:1000;transform:translate(-50%,-50%);background-repeat:no-repeat;background-position:center;background-size:94%;pointer-events:none;filter:drop-shadow(0 6px 9px rgba(0,0,0,.5));will-change:transform}.sq{position:relative;display:flex;align-items:center;justify-content:center;box-shadow:inset 0 0 0 1px var(--board-border-color);outline:none}.sq.light{background:var(--board-light);background-size:cover;background-position:center}.sq.dark{background:var(--board-dark);background-size:cover;background-position:center}.sq.last:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--last-move);pointer-events:none}.sq.sel:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--select);pointer-events:none}.sq.premove:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--premove);pointer-events:none}.sq.check:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at center,var(--check) 0%,var(--check) 26%,color-mix(in srgb,var(--check) 62%,transparent) 48%,color-mix(in srgb,var(--check) 18%,transparent) 68%,transparent 84%);pointer-events:none;animation:checkIn .24s ease-out}@keyframes checkIn{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.sq .mark{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;background:color-mix(in srgb,var(--mark) 68%,transparent);pointer-events:none}.piece{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;background-repeat:no-repeat;background-position:center;background-size:94%;animation:pieceIn var(--piece-anim, .16s) ease}.sq .cue-tint{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;animation:cueFlash 1.3s ease-out both}.sq .cue-tint.own{background:#6aa84f}.sq .cue-tint.foe{background:#c64a3c}@keyframes cueFlash{0%{opacity:0}9%,42%{opacity:1}to{opacity:0}}.duck{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;display:flex;align-items:center;justify-content:center;font-size:9cqi;line-height:1;pointer-events:none;filter:drop-shadow(0 .3cqi .5cqi rgba(0,0,0,.55));animation:pieceIn var(--piece-anim, .16s) ease}.piece.is-hidden,.duck.is-hidden{visibility:hidden}.piece-flight{position:absolute;z-index:3;background-repeat:no-repeat;background-position:center;background-size:94%;pointer-events:none;will-change:transform}.duck-flight{position:absolute;z-index:4;display:flex;align-items:center;justify-content:center;font-size:9cqi;line-height:1;pointer-events:none;filter:drop-shadow(0 .3cqi .5cqi rgba(0,0,0,.55));will-change:transform}.dot,.ring{position:absolute;z-index:1;border-radius:50%;pointer-events:none;transform:scale(0);transition:transform .14s ease}.dot{width:30%;height:30%;background:var(--dot)}.ring{top:7%;right:7%;bottom:7%;left:7%;border:.6cqi solid var(--dot)}.sq.light .dot{background:var(--dot-light)}.sq.light .ring{border-color:var(--dot-light)}.dot.on,.ring.on{transform:scale(1)}.sq.dragTarget .dot.on{transform:scale(1.5)}.sq.dragTarget .ring.on{transform:scale(1.15)}@media(prefers-reduced-motion:reduce){.dot,.ring{transition:none}.sq.check:before{animation:none}}.hint-mark{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;border:.5cqi solid var(--accent);opacity:.55;pointer-events:none}.peek-pad{display:none}@media(max-width:900px){.peek-pad{display:flex;align-items:center;justify-content:center;position:fixed;right:16px;bottom:calc(76px + env(safe-area-inset-bottom,0px));z-index:40;width:52px;height:52px;border-radius:50%;border:1px solid var(--line);background:var(--bg-2);color:var(--text-dim);opacity:.5;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;box-shadow:0 2px 10px #00000040;transition:opacity .12s ease,color .12s ease}.peek-pad.active{opacity:1;color:var(--accent);border-color:var(--accent)}}.coord{position:absolute;z-index:3;font-family:var(--font-mono);font-size:1.9cqi;font-weight:600;opacity:.62;pointer-events:none}.coord.file{right:4%;bottom:2%}.coord.rank{left:4%;top:2%}.sq.light .coord{color:var(--coord-on-light)}.sq.dark .coord{color:var(--coord-on-dark)}.secret-badge{position:absolute;top:4%;right:4%;z-index:3;width:32%;height:32%;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#101115db;box-shadow:0 0 0 1.4px #ffffffad,0 1px 3px #0000008c;color:#e9c168;pointer-events:none}.secret-badge svg{width:62%;height:62%;display:block}.sq.dimmed{filter:brightness(.62) saturate(.65);transition:filter .18s ease}.sq.pickable{cursor:pointer;transition:filter .18s ease}.sq.pickable .piece{transition:transform .16s ease,filter .16s ease;filter:drop-shadow(0 2px 5px rgba(0,0,0,.55))}.sq.pickable:hover .piece,.sq.pickable:focus-visible .piece{transform:translateY(-9%) scale(1.06);filter:drop-shadow(0 5px 10px rgba(0,0,0,.6))}.sq.pickable:before{content:"";position:absolute;top:12%;right:12%;bottom:12%;left:12%;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.22) 0%,rgba(255,255,255,.08) 55%,transparent 72%);pointer-events:none;z-index:0}.sq.picked{box-shadow:inset 0 0 0 3px #ffffffe6,inset 0 0 0 5px #101115bf}.sq.picked .piece{transform:translateY(-9%) scale(1.06)}@media(prefers-reduced-motion:reduce){.sq.dimmed,.sq.pickable,.sq.pickable .piece{transition:none}.sq.pickable:hover .piece,.sq.pickable:focus-visible .piece,.sq.picked .piece{transform:none}}.promo-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:9;display:flex;align-items:center;justify-content:center;background:#0a0b0ea8;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.promo{display:flex;gap:6px;padding:10px;border-radius:14px;background:var(--surface);border:1px solid var(--line);box-shadow:0 18px 40px -18px #000c;animation:rise .16s ease}.promo button{position:relative;width:17cqi;height:17cqi;max-width:76px;max-height:76px;display:flex;align-items:center;justify-content:center;font-size:12cqi;line-height:1;border:1px solid transparent;border-radius:10px;background:var(--surface-2);color:#f7f4ec;cursor:pointer;transition:border-color .12s ease,background .12s ease}.promo button:hover{border-color:var(--accent-line);background:#2c313d}.pocket{display:flex;align-items:center;gap:4px;min-height:44px;padding:4px 6px;border:1px solid var(--line);border-radius:10px;background:var(--surface, rgba(255, 255, 255, .02))}.pocket-empty{color:var(--text-dim);opacity:.5;font-size:18px;padding-left:4px}.pocket-piece{position:relative;width:38px;height:38px;padding:0;border:1px solid transparent;border-radius:8px;background:transparent;cursor:pointer;transition:background .12s,border-color .12s,transform .08s}.pocket-piece:disabled{cursor:default}.pocket-piece:not(:disabled):hover{background:var(--line)}.pocket-piece.active{border-color:var(--accent);background:linear-gradient(180deg,#e3b56a47,#d8a6572e)}.pocket-glyph{display:block;width:100%;height:100%;background-size:contain;background-repeat:no-repeat;background-position:center}.pocket-count{position:absolute;right:0;bottom:-1px;min-width:14px;padding:0 3px;border-radius:7px;background:var(--accent);color:#15171c;font-family:var(--font-display);font-size:11px;font-weight:700;line-height:15px;text-align:center;pointer-events:none}:root{--bg: #131419;--bg-2: #181a21;--surface: #1d2029;--surface-2: #242834;--line: #2c313d;--line-soft: #23262f;--text: #ece9e1;--text-dim: #9fa1ac;--muted: #8a8d99;--accent: #d8a657;--accent-soft: rgba(216, 166, 87, .14);--accent-soft-strong: rgba(216, 166, 87, .18);--accent-line: rgba(216, 166, 87, .4);--accent-grad: linear-gradient(180deg, #e3b56a, #d8a657);--accent-grad-hover: linear-gradient(180deg, #e7bd76, #dcab5d);--on-accent: #15171c;--live: #7bb661;--warn: #e9c46a;--danger: #e07a5f;--good: #63b37c;--good-soft: rgba(99, 179, 124, .16);--bad: #e2775f;--bad-soft: rgba(226, 119, 95, .16);--warn-soft: rgba(233, 196, 106, .16);--premove: rgba(229, 116, 92, .5);--eval-white: #f3eee2;--eval-black: #191c22;--panel-radius: 9px;--board-light: #dde2e6;--board-dark: #8198a6;--board-frame: #0e0f13;--last-move: rgba(188, 203, 128, .62);--select: rgba(174, 196, 110, .72);--square-hover: rgba(255, 255, 255, .9);--dot: rgba(40, 54, 64, .3);--dot-light: rgba(40, 54, 64, .22);--check: rgba(202, 74, 74, .66);--focus: rgba(77, 166, 255, .9);--coord-on-light: #6f828f;--coord-on-dark: #e4eaef;--board-border-color: transparent;--font-display: "Fraunces", Georgia, serif;--font-ui: "Hanken Grotesk", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}html,body{overflow-x:clip}body{background-color:var(--bg);background-image:var( --backdrop-image, radial-gradient(1100px 620px at 50% -8%, rgba(216, 166, 87, .06), transparent 70%), radial-gradient(900px 600px at 88% 110%, rgba(79, 111, 104, .08), transparent 70%) );background-size:var(--backdrop-size, auto);background-position:center top;background-attachment:fixed;color:var(--text);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background-color .22s ease,color .22s ease}a{color:inherit;text-decoration:none}@keyframes clock-bar-pulse{0%,to{opacity:1}50%{opacity:.6}}@media(prefers-reduced-motion:reduce){.clock-bar-pulse{animation:none!important}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}::selection{background:var(--accent-soft)}*{scrollbar-width:thin;scrollbar-color:var(--line) transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-thumb{background:var(--line);border-radius:8px}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pieceIn{0%{opacity:0;transform:scale(.82)}to{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:reduce){:root{--piece-anim: 0ms}*{animation-duration:.001ms!important;transition-duration:.001ms!important}}.mini-board{display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);aspect-ratio:1;width:100%;border-radius:8px;overflow:hidden}.mini-sq{position:relative;box-shadow:inset 0 0 0 1px var(--board-border-color)}.mini-sq.light{background:var(--board-light);background-size:cover;background-position:center}.mini-sq.dark{background:var(--board-dark);background-size:cover;background-position:center}.mini-highlight{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--last-move)}.mini-piece{position:absolute;top:0;right:0;bottom:0;left:0;background-repeat:no-repeat;background-position:center;background-size:86%}
