:root{--mark-green:#34c759;--mark-red:#ff3b30;--mark-blue:#3d6bff;--mark-yellow:#ffa800;--premove:#f42a32;--board-highlight:#ff3;--board-highlight-alpha:.5}.board-box.ib{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;--ib-hl:var(--board-highlight);--ib-hint-light:#00000024;--ib-hint-dark:#00000024;--ib-n-light:var(--sq-dark);--ib-n-dark:var(--sq-light);--ib-ms:.18s;--ib-ease:cubic-bezier(.42, 0, .58, 1);container-type:inline-size}.board-box.ib>.ib-board{--ib-s:12.5cqw;width:auto;height:auto;position:absolute;inset:0;container-type:inline-size}.ib-active>.ib-board{touch-action:none}.ib-lib{position:absolute;inset:0}.ib-lib>div:first-child{width:100%;height:100%}.board-box.ib.ib-outside{--ib-gutter:clamp(16px, 4.4cqw, 26px);box-shadow:none;border-radius:0;overflow:visible}.board-box.ib.ib-outside>.ib-board{inset:0 0 var(--ib-gutter) var(--ib-gutter);box-shadow:0 0 0 1px var(--border), 0 1px 2px #090b0c0d, 0 14px 36px -12px #0069a44d;border-radius:18px;overflow:hidden}.ib-out{font:600 calc(var(--ib-gutter) * .55) / 1 var(--font-ui);color:var(--text-dim);pointer-events:none;display:grid;position:absolute}.ib-out b{place-items:center;font-weight:600;display:grid}.ib-out-files{left:var(--ib-gutter);height:var(--ib-gutter);grid-template-columns:repeat(8,1fr);bottom:0;right:0}.ib-out-ranks{top:0;left:0;bottom:var(--ib-gutter);width:var(--ib-gutter);grid-template-rows:repeat(8,1fr)}.ib-sq{--ib-hint:var(--ib-hint-light);position:absolute;inset:0}.ib-sq[data-light="0"],.pv-cell[data-light="0"]{--ib-hint:var(--ib-hint-dark)}.ib-active .ib-sq.has-piece{cursor:pointer}.ib-can-drag .ib-sq.has-piece{cursor:grab}.ib-active .ib-sq.is-target{cursor:pointer}html.ib-grabbing,html.ib-grabbing *{cursor:grabbing!important}.ib-coord{font:600 calc(var(--ib-s) * .224) / 1 var(--font-ui);pointer-events:none;z-index:0;position:absolute}.ib-coord.rank{left:calc(var(--ib-s) * .06);top:calc(var(--ib-s) * .09)}.ib-coord.file{right:calc(var(--ib-s) * .08);bottom:calc(var(--ib-s) * .04)}.ib-sq[data-light="1"] .ib-coord{color:var(--ib-n-light)}.ib-sq[data-light="0"] .ib-coord{color:var(--ib-n-dark)}.ib-hl,.ib-hl-extra,.ib-mark,.ib-pm,.ib-check,.ib-blink,.ib-hover,.ib-hint,.ib-ring,.ib-ghost,.ib-piece{pointer-events:none;position:absolute}.ib-hl,.ib-hl-extra,.ib-mark,.ib-pm,.ib-check,.ib-blink,.ib-hover,.ib-piece,.ib-ghost{inset:0}.ib-hl{background:var(--ib-hl);opacity:var(--board-highlight-alpha)}.ib-mark{opacity:.8;background:var(--mark-green)}.ib-mark[data-c=red]{background:var(--mark-red)}.ib-mark[data-c=blue]{background:var(--mark-blue)}.ib-mark[data-c=yellow]{background:var(--mark-yellow)}.ib-pm{background:var(--premove);opacity:.5}.ib-hover{box-shadow:inset 0 0 0 calc(var(--ib-s) * .05) #ffffffa6}.ib-check{background:radial-gradient(circle at 50% 50%, var(--red) 0%, color-mix(in srgb, var(--red) 86%, #000) 26%, color-mix(in srgb, var(--red) 62%, transparent) 56%, transparent 88%);animation:1.8s ease-in-out infinite ib-pulse}@keyframes ib-pulse{0%,to{opacity:.72}50%{opacity:1}}.ib-blink{opacity:0;background:red;animation:.6s ease-in-out both ib-blink}@keyframes ib-blink{0%,to{opacity:0}25%,75%{opacity:.55}50%{opacity:.1}}.ib-piece{object-fit:contain;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;height:100%;display:block}.ib-ghost{object-fit:contain;width:100%;height:100%;animation:.12s ease-out both ib-fade;display:block}@keyframes ib-fade{to{opacity:0;transform:scale(1.22)}}.ib-hint{background:var(--ib-hint);width:32.8%;height:32.8%;transition:transform .14s var(--spring,ease);border-radius:50%;margin:auto;inset:0}.ib-ring{box-sizing:border-box;border:calc(var(--ib-s) / 10 - 1px) solid var(--ib-hint);border-radius:50%;inset:0}@media (hover:hover){.ib:not(.is-dragging) .ib-sq.is-target:hover:before{content:"";background:var(--ib-hint);opacity:.55;pointer-events:none;position:absolute;inset:0}.ib:not(.is-dragging) .ib-sq.is-target:hover .ib-hint{transform:scale(1.3)}}.ib-badge{aspect-ratio:1;background:var(--premove);color:#fff;width:27%;font:700 calc(var(--ib-s) * .17) / 1 var(--font-ui);pointer-events:none;border-radius:50%;place-items:center;display:grid;position:absolute;top:5%;right:5%;box-shadow:0 0 0 1.5px #ffffffd9}.ib-anim{pointer-events:none;z-index:10;position:absolute;inset:0}.ib-slide{object-fit:contain;width:12.5%;height:12.5%;animation:ib-slide var(--ib-ms) var(--ib-ease) both;will-change:transform;position:absolute}@keyframes ib-slide{0%{transform:translate(var(--dx), var(--dy))}to{transform:translate(0)}}.ib-drag{z-index:2000;pointer-events:none;will-change:transform;position:fixed;top:0;left:0}.ib-drag img{object-fit:contain;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;height:100%;display:block}.ib-promo{z-index:30;touch-action:none;background:#fff;border-radius:3px;flex-direction:column;width:12.5%;height:56.25%;display:flex;position:absolute;box-shadow:3px 3px 10px #000000a6}.ib-promo.top{top:0}.ib-promo.bottom{flex-direction:column-reverse;bottom:0}.ib-promo-tile{aspect-ratio:1;cursor:pointer;background:0 0;border:0;flex:none;width:100%;padding:0;display:block}.ib-promo-tile img{object-fit:contain;pointer-events:none;width:100%;height:100%;display:block}.ib-promo-tile:hover{background:#0000000f}.ib-promo-tile:focus-visible,.ib-promo-close:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.ib-promo-close{aspect-ratio:2;color:#8b8987;cursor:pointer;background:#f1f1f1;border:0;flex:none;place-items:center;width:100%;padding:0;display:grid}.ib-promo.top .ib-promo-close{border-radius:0 0 3px 3px}.ib-promo.bottom .ib-promo-close{border-radius:3px 3px 0 0}.ib-promo-close svg{fill:none;stroke:currentColor;stroke-width:2.6px;stroke-linecap:round;width:36%;height:auto}.board-box.ib.ib-gear-out{overflow:visible}.ib-gear-out>.ib-board{border-radius:inherit;overflow:hidden}.ib-gear{z-index:40;background:color-mix(in srgb, var(--bg) 84%, transparent);width:32px;height:32px;color:var(--text);box-shadow:0 0 0 1px var(--border), 0 2px 8px #00000024;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);cursor:pointer;opacity:0;transition:opacity .15s ease, transform .2s var(--spring,ease);border:0;border-radius:999px;place-items:center;padding:0;display:grid;position:absolute;top:-13px;right:-13px}.board-box.ib:hover .ib-gear,.ib-gear:focus-visible{opacity:1}@media (hover:none){.ib-gear{display:none}}.ib-gear:active{transform:scale(.92)}.ib-gear:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.bs-gear-ico{fill:none;stroke:currentColor;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:18px;height:18px}.ib-gear svg{fill:none;stroke:currentColor;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.ib-chip{background:color-mix(in srgb, var(--premove) 11%, var(--bg));min-height:38px;box-shadow:inset 0 0 0 1.5px color-mix(in srgb, var(--premove) 42%, transparent);font:600 14px var(--font-ui);color:var(--text);border-radius:999px;align-items:center;gap:8px;padding:0 6px 0 14px;display:inline-flex}.ib-chip-dot{background:var(--premove);border-radius:50%;width:10px;height:10px}.ib-chip button{background:var(--bg);min-height:30px;box-shadow:inset 0 0 0 1px var(--border-strong);color:var(--text);font:600 13px var(--font-ui);cursor:pointer;border:0;border-radius:999px;padding:0 12px}.ib-chip button:hover{background:var(--surface)}.ib-chip button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.bs-scrim{z-index:300;background:#090b0c75;justify-content:center;align-items:flex-end;animation:.18s both bs-fade;display:flex;position:fixed;inset:0}@media (width>=720px){.bs-scrim{align-items:center}}.bs-sheet{background:var(--bg);width:min(580px,100%);max-height:min(92dvh,880px);color:var(--text);box-shadow:var(--shadow-pop);animation:bs-up .3s var(--spring,ease) both;border-radius:28px 28px 0 0;outline:none;flex-direction:column;display:flex;overflow:hidden}@media (width>=720px){.bs-sheet{border-radius:28px}}.bs-head{justify-content:space-between;align-items:center;gap:16px;padding:20px 22px 10px;display:flex}.bs-head h2{font-family:var(--font-display);letter-spacing:-.02em;margin:2px 0 0;font-size:26px;font-weight:700}.bs-body{overscroll-behavior:contain;flex-direction:column;gap:24px;min-height:0;padding:6px 22px 18px;display:flex;overflow-y:auto}.bs-body>*{flex:none}.bs-h{font:600 12px / 1 var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin:0 0 10px}.bs-preview{width:min(100%,320px);box-shadow:0 0 0 1px var(--border), 0 12px 28px -14px #0069a459;border-radius:18px;margin-inline:auto;position:relative;overflow:hidden}.bs-preview:before{content:"";padding-top:75%;display:block}.bs-preview-in{--ib-s:25cqw;position:absolute;inset:0;container-type:inline-size}.pv-cell{width:25%;height:33.333%;position:absolute}.pv-cell img{object-fit:contain;width:100%;height:100%;position:absolute;inset:0}.bs-grid{grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:10px;display:grid}.bs-tile{background:var(--surface);box-shadow:inset 0 0 0 1.5px var(--border);color:var(--text);font:600 13px / 1.2 var(--font-ui);text-align:center;cursor:pointer;transition:transform .2s var(--spring,ease), box-shadow .15s ease, background-color .15s ease;border:0;border-radius:18px;align-content:start;justify-items:center;gap:8px;padding:10px 8px 12px;display:grid}.bs-tile:hover{background:var(--surface-2)}.bs-tile:active{transform:scale(.97)}.bs-tile[aria-checked=true]{background:var(--accent-soft);box-shadow:inset 0 0 0 2.5px var(--accent)}.bs-tile:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.bs-art{justify-content:center;align-items:center;display:flex}.bs-art img{object-fit:contain;width:44px;height:44px;margin-inline:-3px}.bs-swatch{aspect-ratio:2;width:100%;box-shadow:0 0 0 1px var(--border);background-color:var(--surface-3);border-radius:10px}.bs-sound-list{gap:8px;display:grid}.bs-tile.bs-sound{text-align:left;grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr) auto;align-content:center;place-items:center start;gap:2px 12px;padding:12px 14px}.bs-sound b{font:600 15px / 1.25 var(--font-ui);grid-column:1}.bs-sound small{font:400 13px / 1.35 var(--font-ui);color:var(--text-dim);grid-column:1}.bs-play{background:var(--surface-3);width:34px;height:34px;color:var(--text-dim);border-radius:50%;grid-area:1/2/span 2;place-items:center;transition:background-color .15s,color .15s;display:grid}.bs-play-ico{fill:currentColor;width:16px;height:16px}.bs-sound[aria-checked=true] .bs-play{background:var(--accent);color:var(--on-accent)}.bs-sound-note{padding:8px 0 0}.bs-rows{gap:4px;display:grid}.bs-row{border-top:1px solid var(--border);cursor:pointer;justify-content:space-between;align-items:center;gap:16px;padding:12px 0;display:flex}.bs-row.stack-sm{cursor:default;flex-wrap:wrap}.bs-rows>.bs-row:first-child{border-top:0}.bs-label{gap:2px;min-width:0;display:grid}.bs-label b{font:600 15px / 1.25 var(--font-ui)}.bs-label small{font:400 13px / 1.35 var(--font-ui);color:var(--text-dim)}.bs-switch{appearance:none;background:var(--surface-3);cursor:pointer;border:0;border-radius:999px;flex:none;width:48px;height:28px;margin:0;transition:background-color .16s;position:relative}.bs-switch:after{content:"";width:22px;height:22px;transition:transform .22s var(--spring,ease);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0000004d}.bs-switch:checked{background:var(--accent)}.bs-switch:checked:after{transform:translate(20px)}.bs-switch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.bs-note{font:400 13px / 1.4 var(--font-ui);color:var(--text-dim);margin:0;padding:0 0 12px}.bs-engine{align-items:flex-start;gap:10px}.bs-engine .bar{width:100%}.bs-foot{padding:12px 22px calc(16px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--border);justify-content:flex-end;display:flex}@keyframes bs-fade{0%{opacity:0}}@keyframes bs-up{0%{opacity:0;transform:translateY(24px)}}@media (prefers-reduced-motion:reduce){.ib-check,.ib-slide,.ib-ghost{animation:none}.ib-blink{animation-duration:1ms}.bs-scrim,.bs-sheet{animation:none}.ib-hint,.bs-tile,.bs-play,.bs-switch:after{transition:none}}.bs-tile.is-locked{position:relative}.bs-tile.is-locked .bs-art,.bs-tile.is-locked .bs-swatch{opacity:.55;filter:saturate(.6)}.bs-lock{border-radius:var(--radius-pill);background:var(--ink);color:var(--on-ink);letter-spacing:.02em;padding:2px 8px;font-size:11px;font-weight:700;position:absolute;top:6px;right:6px}
