.cb-board{--cb-light: #e8d4ae;--cb-dark: #a07650;--cb-last: rgba(255, 200, 0, .6);--cb-selected: rgba(41, 182, 246, .5);--cb-premove: rgba(74, 20, 140, .5);--cb-pending: rgba(230, 81, 0, .55);--cb-check: rgba(229, 28, 35, .7);--cb-outline-dark: #141414;--cb-outline-light: #ffffff;--cb-target: rgba(25, 18, 8, .75);--cb-premove-target: rgba(46, 15, 69, .8);--cb-shape-green: #009e73;--cb-shape-red: #d55e00;--cb-shape-blue: #0072b2;--cb-shape-yellow: #f0e442;position:relative;width:100%;aspect-ratio:1 / 1;user-select:none;-webkit-user-select:none;touch-action:none;-webkit-tap-highlight-color:transparent;outline:none;contain:layout paint;container-type:inline-size}.cb-board:focus-visible{box-shadow:0 0 0 3px #3c78dcb3}.cb-squares,.cb-shapes,.cb-pieces,.cb-overlay{position:absolute;inset:0;width:100%;height:100%}.cb-light{fill:var(--cb-light)}.cb-dark{fill:var(--cb-dark)}.cb-coord{font:600 .2px system-ui,sans-serif;dominant-baseline:auto;pointer-events:none}.cb-coord.on-light{fill:var(--cb-dark)}.cb-coord.on-dark{fill:var(--cb-light)}.cb-last{fill:var(--cb-last)}.cb-selected{fill:var(--cb-selected)}.cb-premove{fill:var(--cb-premove)}.cb-pending{fill:var(--cb-pending)}.cb-hover{fill:#ffffff40}.cb-check{fill:var(--cb-check)}.cb-outline-dark{fill:none;stroke:var(--cb-outline-dark);stroke-width:.04}.cb-outline-light{fill:none;stroke:var(--cb-outline-light);stroke-width:.03}.cb-cursor{fill:none;stroke:#3c78dce6;stroke-width:.06}.cb-target{fill:var(--cb-target);stroke:var(--cb-outline-light);stroke-width:.03}.cb-target-ring{fill:none;stroke:var(--cb-target);stroke-width:.08}.cb-target-rim{fill:none;stroke:var(--cb-outline-light);stroke-width:.03}.cb-target.cb-pre{fill:var(--cb-premove-target)}.cb-target-ring.cb-pre{stroke:var(--cb-premove-target)}.cb-pieces{pointer-events:none}.cb-piece{position:absolute;left:0;top:0;width:12.5%;height:12.5%;will-change:transform}.cb-white{--pf: #f7f5ee;--ps: #1c1c1c;--pd: #1c1c1c}.cb-black{--pf: #2b2b2b;--ps: #0d0d0d;--pd: #ececec}.cb-piece-art{display:block;width:100%;height:100%;overflow:visible}.cb-piece.cb-dragging{z-index:2;transition:none!important;scale:1.15}.cb-shapes{pointer-events:none}.cb-shape{fill:none;stroke-width:.12;opacity:.75}.cb-shape.cb-arrow{stroke-width:.16;stroke-linecap:round}.cb-shape.cb-drawing{opacity:.45}.cb-stroke-green{stroke:var(--cb-shape-green)}.cb-stroke-red{stroke:var(--cb-shape-red)}.cb-stroke-blue{stroke:var(--cb-shape-blue)}.cb-stroke-yellow{stroke:var(--cb-shape-yellow)}.cb-fill-green{fill:var(--cb-shape-green)}.cb-fill-red{fill:var(--cb-shape-red)}.cb-fill-blue{fill:var(--cb-shape-blue)}.cb-fill-yellow{fill:var(--cb-shape-yellow)}.cb-overlay{pointer-events:none}.cb-overlay>*{pointer-events:auto}.cb-backdrop{position:absolute;inset:0;background:#00000059}.cb-dialog{position:absolute;z-index:3}.cb-promotion{display:flex;flex-direction:column;width:12.5%;height:50%}.cb-choice{flex:1;border:0;border-radius:50%;margin:0;padding:4%;background:#f0f0f0;cursor:pointer}.cb-choice:focus-visible,.cb-choice:hover{background:#fff;outline:3px solid rgba(60,120,220,.8)}.cb-confirm{left:50%;bottom:4%;transform:translate(-50%);display:flex;gap:.5em}.cb-confirm button,.cb-castle button{font:600 1rem system-ui,sans-serif;min-height:44px;min-width:44px;padding:.4em .9em;border-radius:8px;border:0;cursor:pointer;background:#fff;color:#1e1e1e;box-shadow:0 2px 6px #00000059}.cb-confirm .cb-confirm-yes{background:#2f8f3b;color:#fff}.cb-castle{display:flex;gap:.3em}.cb-live{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}@media(prefers-reduced-motion:reduce){.cb-piece{transition:none!important}}.report-dialog{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:20;width:min(92vw,440px);max-height:92vh;overflow:auto;padding:16px;border-radius:12px;background:#fff;color:#1f2328;box-shadow:0 10px 40px #00000059}.report-title{margin:0 0 8px;font-size:1.25rem}.report-form{display:grid;gap:10px}.report-reasons{margin:0;padding:8px 10px;border:1px solid #c9c1b3;border-radius:8px;display:grid;gap:4px}.report-reason{display:flex;gap:8px;align-items:center;min-height:36px}.report-text{width:100%;box-sizing:border-box;font:inherit;padding:8px;border-radius:8px;border:1px solid #a89f8f;resize:vertical}.report-note,.report-status{margin:0;font-size:.9rem;color:#4a4f55}.report-buttons{display:flex;gap:8px;flex-wrap:wrap}.report-dialog button{min-height:44px;padding:0 14px;border-radius:8px;border:1px solid #a89f8f;background:#fff;color:#1f2328;font:inherit;cursor:pointer}.report-dialog .report-send{background:#2f6b3f;border-color:#2f6b3f;color:#fff}.report-dialog button:disabled{opacity:.6;cursor:default}.report-link{min-height:44px;padding:0 12px;border:none;background:none;color:inherit;font:inherit;text-decoration:underline;cursor:pointer}[hidden]{display:none!important}body.is-game{display:block;place-items:normal;padding:8px}.game{display:grid;grid-template-areas:"banner" "lobby" "top" "board" "bottom" "side";grid-template-columns:minmax(0,1fr);gap:6px;width:min(100%,560px);margin:0 auto;text-align:left}.game-banner{grid-area:banner;margin:0;padding:6px 10px;border-radius:6px;background:#fff4d6;color:#3d3000}.game-player-top{grid-area:top}.game-player-bottom{grid-area:bottom}.game-board{grid-area:board;width:100%}.game-side{grid-area:side;display:grid;gap:8px;align-content:start}@media(min-width:900px){.game{width:min(100%,980px);grid-template-columns:minmax(0,620px) minmax(260px,340px);grid-template-areas:"banner banner" "lobby lobby" "top side" "board side" "bottom side";column-gap:16px}}.game-player{display:flex;align-items:center;gap:8px;min-height:44px;padding:2px 8px;border-radius:8px}.game-player.is-turn{background:#0000000f}.game-who{display:flex;align-items:baseline;gap:6px;min-width:0;flex:1}.game-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-presence{font-size:.85rem;color:#8a3b12}.game-material{display:flex;align-items:center;gap:4px}.game-captured{display:inline-flex}.game-captured-piece{display:inline-block;width:18px;height:18px;margin-right:-5px}.game-advantage{font-size:.85rem;font-weight:600}.game-clock{font:600 1.35rem ui-monospace,Cascadia Mono,Menlo,monospace;min-width:6ch;padding:2px 8px;border-radius:6px;text-align:right;background:#e6e0d4;color:#1f2328;font-variant-numeric:tabular-nums}.game-clock.is-running{background:#1f2328;color:#fff}.game-clock.is-low{background:#b3261e;color:#fff}.game-heading{font-size:1rem;margin:0 0 4px}.game-move-list{max-height:220px;overflow-y:auto;margin:0;padding-left:2.6em}.game-move-row{display:list-item}.game-move,.game-move-gap{display:inline-block;min-width:4.5em;min-height:32px;padding:2px 6px;border:0;border-radius:4px;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.game-move.is-current{background:#ffd54a;color:#1f2328}.game-nav,.game-actions,.game-phrases,.game-offer,.game-result-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.game-side button,.game-result button,.game-result a,.game-banner button{min-height:44px;padding:0 12px;border-radius:8px;border:1px solid #a89f8f;background:#fff;color:#1f2328;font:inherit;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center}.game-side .game-move{min-height:32px;border:0;background:none;color:inherit}.game-side .game-move.is-current{background:#ffd54a;color:#1f2328}.game-resign.is-armed{background:#b3261e;border-color:#b3261e;color:#fff}.game-input{display:grid;grid-template-columns:1fr auto;gap:6px;align-items:center}.game-input-label{grid-column:1 / -1;font-weight:600}.game-input input{min-height:44px;padding:0 10px;border-radius:8px;border:1px solid #a89f8f;font:inherit}.game-hint{grid-column:1 / -1;margin:0;min-height:1.2em;color:#8a1c14}.game-viewing{margin:4px 0 0;font-size:.9rem}.game-result{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:10;width:min(92vw,420px);padding:16px;border-radius:12px;background:#fff;color:#1f2328;box-shadow:0 10px 40px #00000059;text-align:center}.game-result-title{margin:0 0 4px;font-size:1.5rem}.game-result-reason{margin:0 0 12px}.game-result-actions{justify-content:center}@media(prefers-color-scheme:dark){.game-banner{background:#3a3220;color:#f3e7c2}.game-player.is-turn{background:#ffffff14}.game-clock{background:#3a3631;color:#f0ebe1}.game-clock.is-running{background:#f0ebe1;color:#1d1b18}.game-side button,.game-result button,.game-result a,.game-banner button,.game-input input{background:#2a2723;color:#e6e1d6;border-color:#5c564c}.game-result{background:#24211d;color:#e6e1d6}.game-hint{color:#ff9b8f}}.game-lobby{grid-area:lobby;display:grid;gap:8px;padding:12px;border-radius:10px;background:#fff4d6;color:#1f2328}.lobby-title{margin:0;font-size:1.2rem}.lobby-line{margin:0}.lobby-timer{font-variant-numeric:tabular-nums;font-weight:600}.lobby-link-box,.lobby-offer,.lobby-match{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.lobby-link{flex:1;min-width:14em;min-height:44px;padding:0 10px;border-radius:8px;border:1px solid #a89f8f;font:inherit}.game-lobby button,.lobby-back{min-height:44px;padding:0 12px;border-radius:8px;border:1px solid #a89f8f;background:#fff;color:#1f2328;font:inherit;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-self:start}@media(prefers-color-scheme:dark){.game-lobby{background:#3a3220;color:#f3e7c2}.game-lobby button,.lobby-back,.lobby-link{background:#2a2723;color:#e6e1d6;border-color:#5c564c}}.game-language{display:inline-flex;align-items:center;gap:8px}.game-language select{min-height:44px;border-radius:8px;border:1px solid #a89f8f;background:#fff;color:#1f2328;font:inherit;padding:0 8px}.game-announce{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}@media(prefers-color-scheme:dark){.game-language select{background:#2a2723;color:#e6e1d6;border-color:#5c564c}}.game-title{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}html.layout-obs,html.layout-obs body{width:1920px;height:1080px;min-height:0;margin:0;overflow:hidden}html.layout-obs body.is-game{padding:0;display:block}html.layout-obs[data-obs-theme=dark] body{background:#111316;color:#f2f2f2}html.layout-obs[data-obs-theme=light] body{background:#f4f1ea;color:#1f2328}html.layout-obs[data-obs-bg=transparent],html.layout-obs[data-obs-bg=transparent] body{background:transparent}html.layout-obs .game{position:fixed;left:48px;top:48px;width:1824px;height:872px;margin:0;font-size:28px;grid-template-columns:872px minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;grid-template-areas:"board top" "board side" "board bottom";column-gap:48px;row-gap:16px}html.layout-obs .game-board{width:872px;height:872px}html.layout-obs .game-player{font-size:32px;min-height:64px;background:transparent}html.layout-obs .game-clock{font-size:44px}html.layout-obs .game-side{overflow:hidden}html.layout-obs .game-move-list,html.layout-obs .game-heading{font-size:28px}html.layout-obs .game-move-row:nth-last-child(n+6){display:none}html.layout-obs .game-move{font-size:28px;pointer-events:none}html.layout-obs .game-banner,html.layout-obs .game-lobby,html.layout-obs .game-nav,html.layout-obs .game-to-live,html.layout-obs .game-viewing,html.layout-obs .game-offer,html.layout-obs .game-actions,html.layout-obs .game-phrases,html.layout-obs .game-input,html.layout-obs .game-language,html.layout-obs .game-report,html.layout-obs .game-challenge-box,html.layout-obs .game-result-actions,html.layout-obs .game-result-note{display:none!important}html.layout-obs .game-result{position:static;transform:none;width:auto;box-shadow:none;background:transparent;color:inherit;grid-area:bottom;padding:0;text-align:left}html.layout-obs .game-result-title{font-size:36px}.game-challenge-box{display:grid;gap:6px}.game-challenge-box .game-challenge{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 14px;border-radius:10px;background:#2f6f3b;color:#fff;text-decoration:none;font-weight:600}.game-challenge-note{margin:0;font-size:.85rem;opacity:.85}:root{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:#1f2328;background:#f4f1ea}@media(prefers-color-scheme:dark){:root{color:#e6e1d6;background:#1d1b18}}body{margin:0;min-height:100dvh;display:grid;place-items:center;text-align:center;padding:16px;box-sizing:border-box}h1{margin:0 0 8px;font-size:2rem}.stage{width:min(92vw,560px);margin:12px auto 0}.settings{width:min(92vw,560px);margin:16px auto 0;text-align:left}.settings h2{font-size:1.2rem;margin:0 0 8px}.settings-group{border:1px solid #c9c1b2;border-radius:8px;margin:0 0 10px;padding:8px 10px 10px;display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center}.settings-group legend{font-weight:600;padding:0 4px}.settings-choice,.settings-volume{display:inline-flex;align-items:center;gap:6px;min-height:44px;cursor:pointer}.settings-swatch{display:grid;grid-template-columns:14px 14px;border:1px solid #00000040}.settings-swatch span{width:14px;height:14px}.settings-pieces-preview{display:inline-flex;background:#e8d4ae;border-radius:4px}.settings-piece{display:block;width:32px;height:32px}.settings-test{min-height:44px;padding:0 12px;border-radius:8px;border:1px solid #a89f8f;background:#fff;color:#1f2328;font:inherit;cursor:pointer}.footer{margin-top:16px}.footer a,.notices a{color:#1d5fae}.notices{max-width:720px;text-align:left}.notices-list{list-style:none;padding:0}.notices-list li{border-top:1px solid #c9c1b2;padding:8px 0}.notices-list h2,.notices-list h3{font-size:1.05rem;margin:4px 0}.notices dl{display:grid;grid-template-columns:max-content 1fr;gap:2px 12px;margin:0}.notices dt{font-weight:600}.notices dd{margin:0}@media(prefers-color-scheme:dark){.settings-test{background:#2a2723;color:#e6e1d6}.footer a,.notices a{color:#8ab8f0}}.menu-recent{width:min(92vw,560px);margin:14px auto 0;text-align:left}.menu-recent h2{font-size:1.15rem;margin:0 0 6px}.menu-recent ul{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:6px}.menu-recent a{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;border:1px solid #a89f8f;border-radius:8px;color:inherit;text-decoration:none}.menu{width:min(92vw,560px);margin:8px auto 0;display:grid;gap:14px;text-align:left}.menu h2{font-size:1.15rem;margin:0 0 6px}.menu-play{display:grid;gap:2px;min-height:72px;padding:10px 16px;border:0;border-radius:14px;background:#2f6f3b;color:#fff;font:inherit;cursor:pointer;text-align:center}.menu-play-title{font-size:1.6rem;font-weight:700}.menu-play-sub{font-size:.95rem;opacity:.9}.menu-pools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.menu-pool{display:grid;gap:2px;min-height:60px;border-radius:10px;border:1px solid #a89f8f;background:#fff;color:#1f2328;font:inherit;cursor:pointer}.menu-pool-tc{font-size:1.25rem;font-weight:700}.menu-pool-category{font-size:.85rem}.menu-ai{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin-top:6px;cursor:pointer}.menu-note{margin:0;font-size:.85rem;opacity:.85}.menu-bot,.menu-friend{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:end}.menu-bot h2,.menu-friend h2,.menu-friend .menu-note{width:100%}.menu-field{display:grid;gap:2px}.menu-field select,.menu-field input[type=number],.menu-start{min-height:44px;border-radius:8px;border:1px solid #a89f8f;background:#fff;color:#1f2328;font:inherit;padding:0 10px}.menu-field input[type=number]{width:8ch}.menu-rated{grid-auto-flow:column;align-items:center;min-height:44px}.menu-start{font-weight:600;background:#2f6f3b;border-color:#2f6f3b;color:#fff;cursor:pointer}.watch-list{list-style:none;margin:0;padding:0}.watch-match{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;padding:6px 0;border-top:1px solid #c9c1b2}.watch-players{font-weight:600;flex:1;min-width:12em}.watch-empty{margin:0 0 6px}.watch-season,.watch-link{color:#1d5fae}@media(prefers-color-scheme:dark){.menu-pool,.menu-field select,.menu-field input[type=number]{background:#2a2723;color:#e6e1d6;border-color:#5c564c}.watch-season,.watch-link{color:#8ab8f0}}:focus-visible{outline:3px solid #1d5fae;outline-offset:2px}@media(prefers-color-scheme:dark){:focus-visible{outline-color:#8ab8f0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important;scroll-behavior:auto!important}}.menu-page{display:contents}
