@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(data:font/woff2;base64,d09GMgABAAAAAAaEABMAAAAADFgAAAYdAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhYbbhwoP0hWQVJpBmA/U1RBVIE4AFwvbBEICoJ8gkMLFAAwhCoBNgIkAyIEIAWGUAdiDAcbvgpRVHJOI/viwCYyfSFrJjFIG8raYpYj9+IeSF0s6zD+Lk/4OGrZHhHV+wvt2ffuWPwlA51lIICIosSVmyOKEs5Uzlx3NKeXIgn1ssCydUybDV0IHga+SszIyfrQe9bLTFNxjayzgs76hNsDoSYtRe32fiJ4gxBjrP8L+w//zzHjv7Yqyr9o2vOBDXhCo2jMtr4uwAK/gV1U0PxAq/EAD+yW9EoKOL1KLw8rHrFgCSgRTQRzBzpeXVhweEDlyfY8gIoOa2CQJzrTAHIIoitTMVV2dyFwpJ2iAEQTpSkhPitxD3YwuZHEagTcAhyKAcBmUyPdhTovJThOw6HYiaF2M/J7erdi2OUutor6ES6Ac88AvfZvKpb6fJoArohb524042j6Jij36NI7P8Pb7s721naN9gcTtcjXQP4l+8BKEzFVGMxxoHqlq8Ul4LGneFJBDFaOdKpLPcg8P14YSDwIcn75hdlyJLTBlZ4voL6tT46yC/njunXqpJ0/bSvmrH1o3kRlwZ+j0DBogkF3KbDRVBlbOc+fY5HVXwPoT9hfekPnyZMaEmenYLMSg5npqegFOsgXsBv1IoF9aIVfSCNHkk6+gIzILsiYuhWQCfUtZEpbkRntQxBZgw7MwFbMcRvwJrAnBlDqs7isLtL7pO84Xru1i7ah7tckH1Wreqq6K9u0amxU1bcff/s2Y1ni3rh2I8zHzqkm3PGvv3mzC6NDBz/UcOBIg+nm88rxN8MbdtypvHUL5o1c2zG0urYpRmW+VHZdiba6GXN/3v0B3i3nt4RBsbfAu8ftLqRcTIlZ4VYheFTAS5nXLS65VZrbuW3daF2Ze1ChyGXWZN6u9nUuH1LfyTERifZXEpIueMe28vF8FOoTnsONzw+1djo9P71lZGx1vM8mH/BhvSa2HDsRZ1+Ul+RmpnPOIaEuwWnZZdkgQWAAyCDDZ1wk+0sh7wseAAwA6UlHxbftCgYAAwKAgwIAEA7ACfHIRbV7J6dwF/ZzcRRmAjXUYKAGWAlDCCFmKnH+LJEQfHKEmVrfmKwSEab36AcubXQBoDYJV/aRV+funFD8wAXLSLYbwr9+DR+h/qZIKCfeqRG5ghHpdY0zcV2nuz5iJMhAFjaTDwOcoyKGG9JHrCfdp4cC+kCvUrxc7+bliIMiHj95sPIbUeWZEP/HLnN2tlr9EBeRiktHuWvErx98fRz1MuEvHO3FDRgtsSzL/P0hsDLK2n5/uHMOjvTst0HD6t+80ZN798j7j//kjqHxIOZDFPR/FxurFD6/HxGbB799RPHLx5F89MoBOub9jVuOWtmPH3o9H3r26DIuff+LqPLwff/xryDRmiAYmjxiK0GwS9XU+k8QpUrHsCTs4qH89Fv44ubWbQmOE51M7J8Pt8+h+NKt3zZpa2L9zZqcRlyEc4MaNGdfjQCxgIygn78ne4yAzcLWA3zAJ6RRGbijvHr1W+XN8ywrG0EoZSySb0/A9KsllI7Q/Pq8hLu76tfTy5cF4X8bQxTtYp2vr6/+1oI4AhgAlNYFryt62VaX9ktO6VsAeDLeWx6fff4vdV1ts7N6+gw9GCsQnqPB0QUttB9nEc7Aaf4XM0NQ90VJ+HV1rG04znGCmXcpPCA9+nxdMPgPlT7Dz83NMfZuMJaNeRqbc+tjd2QER/b0B44d7nv5Rif7VC8svYkx9SKWwb3YzN2M3cY8jSNLl+PYZqfjxNTxOLXVCmfmduDc0ty1kLbjeiGfIrDFJXWPTTMD5TKupR8cpZgJeXTofId8NoUj6E8XfAc2k4WPdbCberDYAp8Q7L5dUo8wE8cs9QINZYvwXKzvBS4v/n+fQZkGrrFysKEIuFBgjQpxiHH1XA+ZBI+C+oAoxhYKECc42rGOc8L4mYhsiThGfFjOcKmFubPpDgwnY1918Fwo8ouenDJxvGP96HFWJ28hiOy251oKjkcbGz2POMme8CTMThx6wqOPsFtPI6j6HhDyDTxFQYnL88FcXGAGHl3ZuueRbEuxbK6Hc84ZDvRrREtLzyjj8Xkd/uShR1b0sYd8Nh8/c8znxCnadxQcf2nFVWIyw1g+4StXav9j75s+CQAA)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/hanken-grotesk-vietnamese-wght-normal-CHiFlh_0.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/hanken-grotesk-latin-ext-wght-normal-Dg-wlmqe.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/hanken-grotesk-latin-wght-normal-CaVRRdDk.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Commit Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/commit-mono-latin-400-normal-wzhe4RuD.woff2)format("woff2"),url(/assets/commit-mono-latin-400-normal-s0S3qwFW.woff)format("woff")}@font-face{font-family:Commit Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/commit-mono-latin-600-normal-SwgSWHaV.woff2)format("woff2"),url(/assets/commit-mono-latin-600-normal-BuQDXT0M.woff)format("woff")}:root{color:var(--text);background:var(--bg);font-synthesis:none;--bg:#eceae4;--surface:#f8f6f2;--surface-2:#dad6ce;--text:#1b1a18;--text-2:#4a4845;--muted:#5e5c58;--accent:#7a5402;--accent-hover:#573c02;--accent-ink:#fbfbf8;--line:#1b1a1826;--success:#2a6446;--warning:#8a4400;--danger:#9c352f;--info:#2b5f7d;--last-move:#2b6ea6;--scrim:#1b1a1873;--shadow:0 14px 42px #1b1a1817;--board-wood-light:#c99b64;--board-wood-dark:#744725;--board-wood-light-hover:#d4aa75;--board-wood-dark-hover:#86542c;--board-wood-line:#3f2a1a;--board-rim:#3f2a1a;--piece-white:#fbf8ed;--piece-white-edge:#4c4032;--piece-white-mark:#171817;--piece-black:#161817;--piece-black-edge:#d7c9a6;--piece-black-mark:#fbf8ed;--board-size:clamp(300px, 60svh, 540px);--nav-h:64px;--board-frame:clamp(4px, 1vw, 6px);--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:32px;--sp-7:48px;--gutter:max(clamp(20px, 5vw, 72px), calc((100vw - 1440px) / 2));--r-detail:2px;--r-control:4px;--r-surface:8px;--fast:.14s;--base:.24s;--shape:.38s;--slow:.44s;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-soft:cubic-bezier(.22, .61, .36, 1);--focus:2px solid var(--accent);--focus-gap:2px;font-family:Hanken Grotesk Variable,sans-serif}:root[data-theme=dark]{--bg:#0b0a0a;--surface:#151513;--surface-2:#222220;--text:#eae8e3;--text-2:#a6a299;--muted:#8d8a84;--accent:#b78a19;--accent-hover:#dba51e;--accent-ink:#11100e;--line:#eae8e324;--success:#7fba91;--warning:#e39c45;--danger:#e8857d;--info:#75abc6;--last-move:#3578b0;--scrim:#0009;--shadow:0 18px 48px #0000003d;--board-wood-light:#b98954;--board-wood-dark:#56351f;--board-wood-light-hover:#c79861;--board-wood-dark-hover:#6c4529;--board-wood-line:#2d1b10;--board-rim:#85603b;--piece-white:#f5f0e3;--piece-white-edge:#44382c;--piece-white-mark:#151716;--piece-black:#111312;--piece-black-edge:#d8caaa;--piece-black-mark:#f5f0e3}*{box-sizing:border-box}html{background:var(--bg);min-width:320px}body{min-width:320px;min-height:100vh;color:var(--text);background:var(--bg);transition:color var(--slow) var(--ease-soft), background-color var(--slow) var(--ease-soft);margin:0}button{font:inherit}a:focus-visible,button:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:var(--focus);outline-offset:var(--focus-gap)}.app-shell{min-height:100vh}.site-nav{z-index:20;height:var(--nav-h);padding:0 var(--gutter);background:color-mix(in srgb, var(--bg) 92%, transparent);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.text-button{padding:var(--sp-2) 0;color:var(--text);border-radius:var(--r-detail);cursor:pointer;transition:color var(--fast) var(--ease-soft);background:0 0;border:0;font-weight:650}.text-button,.crumb-link,.segmented-option,.history-link{--focus-gap:4px}.text-button:hover:not(:disabled){color:var(--accent)}.text-button:active:not(:disabled){color:var(--accent-hover)}.text-button:disabled{opacity:.4;cursor:default}.theme-toggle{width:40px;height:40px;color:var(--text);border-radius:var(--r-control);cursor:pointer;transition:color var(--fast) var(--ease-soft), background-color var(--fast) var(--ease-soft);background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:flex}.theme-toggle:hover{background:var(--surface-2)}.theme-toggle:active{background:color-mix(in srgb, var(--text) 14%, transparent)}.theme-icon{justify-content:center;align-items:center;width:24px;height:24px;display:flex}.theme-icon svg{width:100%;height:100%}h1,h2,h3,p{margin-top:0}.mono-label{margin:0 0 var(--sp-3);color:var(--accent);font-family:Commit Mono,monospace;font-size:12px;font-weight:600}h1,h2,h3{color:var(--text);font-family:Georgia,Times New Roman,serif;font-weight:500}.home-page{padding:var(--sp-3) var(--gutter) var(--sp-2)}.index{grid-template-columns:minmax(0,1fr);align-items:center;gap:56px;display:grid}.index-rows{position:relative}.index-rows ul{margin:0;padding:0;list-style:none}.index-rows>ul{border-top:1px solid var(--line)}.index-row{align-items:center;gap:var(--sp-4);border-bottom:1px solid var(--line);transition:background-color var(--base) var(--ease-soft);grid-template-columns:72px minmax(0,1fr) 32px 20px;padding:4px 18px 4px 14px;display:grid;position:relative}.index-row:has(.index-link:focus-visible){outline:var(--focus);outline-offset:-2px}.index-row{--s:.3;--tw:240px}.index-thumb{width:72px;height:72px;transition:transform var(--base) var(--ease-out);position:relative}.index-thumb .game-thumbnail{width:var(--tw);--board-frame:6px;transform:translate(-50%, -50%) scale(var(--s));padding:0;position:absolute;top:50%;left:50%}.index-thumb:has(.hex-board){--tw:800px;border-radius:var(--r-detail);box-shadow:0 0 0 2px var(--board-rim);overflow:hidden}.index-thumb .hex-board{translate:calc(var(--focus-x,0) * -1%) calc(var(--focus-y,0) * var(--tw) / -100)}.index-text{grid-template-columns:minmax(0,1fr);grid-template-areas:"name""history";align-items:baseline;gap:2px;min-width:0;display:grid}.index-name{letter-spacing:-.01em;transition:color var(--fast) var(--ease-soft);grid-area:name;margin:0;font-size:24px;line-height:1.2}.index-link{color:inherit;text-decoration:none}.index-link:focus-visible{outline:none}.index-link:after{content:"";position:absolute;inset:0}.game-row-history{color:var(--text-2);margin:0;font-size:15px;line-height:1.45}.index-text .game-row-history{padding-top:var(--sp-1);grid-area:history}.index-help{z-index:1;width:32px;height:32px;color:var(--text-2);cursor:pointer;transition:color var(--fast) var(--ease-soft);background:0 0;border:0;padding:0;font-family:Commit Mono,monospace;font-size:14px;font-weight:600;line-height:1;position:relative}.index-help:after{content:"";position:absolute;inset:-6px}.index-help:hover{color:var(--accent)}.index-help:active{color:var(--accent-hover)}.index-arrow{width:18px;height:18px;color:var(--muted);transition:transform var(--base) var(--ease-out), color var(--fast) var(--ease-soft);transform:translate(0)}.index-bar{z-index:2;background:var(--accent);border-radius:var(--r-detail);opacity:0;pointer-events:none;width:2px;height:0;transition:transform var(--slow) var(--ease-out), height var(--shape) var(--ease-out), opacity var(--fast) var(--ease-soft);position:absolute;top:0;left:0}.index-bar[data-on=true]{opacity:1}.index-preview{display:none}.game-row-history.is-in-row{display:block}@media (width>=900px){.index{grid-template-columns:minmax(0,1fr) minmax(340px,504px)}.index-row[data-active=true]{background:var(--surface-2)}.index-row[data-active=true] .index-name{color:var(--accent)}.index-row[data-active=true] .index-arrow{color:var(--accent);transform:translate(4px)}.index-row[data-active=true] .index-thumb{transform:translateY(-1px)}.game-row-history.is-in-row{display:none}.index-preview{top:calc(64px + var(--sp-4));padding:var(--sp-5);background:var(--surface);display:block;position:sticky}.index-preview-swap{gap:var(--sp-4);animation:index-swap var(--base) var(--ease-out);display:grid}.index-preview-board{width:min(100%,460px,100svh - 340px);min-width:min(100%,280px);margin-inline:auto}.index-preview-board .game-thumbnail{padding:0}.index-preview-text{gap:var(--sp-2);display:grid}.index-preview-name{letter-spacing:-.025em;margin:0;font-size:34px;line-height:1.1}.index-preview-foot{align-items:center;gap:var(--sp-3);display:flex}.index-play{gap:var(--sp-2);min-height:40px}.index-play .index-arrow{width:16px;height:16px;color:inherit;transition:transform var(--base) var(--ease-out)}.index-play:hover .index-arrow{transform:translate(3px)}}@keyframes index-swap{0%{opacity:0;transform:translateY(6px)}}@media (width>=900px) and (width<=1100px){.index{grid-template-columns:minmax(0,1fr) 380px;gap:40px}}@media (width<=899px){.index-bar{display:none}.index-row:active{background:var(--surface-2)}}@media (width<=560px){.home-page{padding-bottom:var(--sp-5)}.index-row{--s:.2667;gap:var(--sp-3);grid-template-columns:64px minmax(0,1fr) 32px;padding:6px 0}.index-row>.index-arrow{display:none}.index-thumb{width:64px;height:64px}.index-name{font-size:19px}}.game-thumbnail{--board-size:100%;padding:var(--sp-2);pointer-events:none;-webkit-user-select:none;user-select:none;display:block}.game-thumbnail .board-instruction,.game-thumbnail .wallgo-controls,.game-thumbnail .othello-controls,.game-thumbnail .quoridor-controls{display:none}.game-thumbnail *{transition:none!important;animation:none!important}.game-thumbnail .was-moved{box-shadow:none}.game-thumbnail .wallgo-wall.is-mark,.game-thumbnail .quoridor-wall.is-mark{display:none}.game-thumbnail .checker-square.was-moved,.game-thumbnail .wallgo-cell.was-moved{box-shadow:none}.game-thumbnail .point.was-moved .point-core{border-color:var(--piece-edge)}.game-thumbnail:has(.hex-board){aspect-ratio:1;grid-template-columns:minmax(0,1fr);align-content:center;display:grid}.game-thumbnail .hex-cell.was-moved .hex-stone{box-shadow:var(--piece-depth)}.game-thumbnail .othello-cell.was-moved{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--board-wood-line) 35%, transparent)}.game-thumbnail .quoridor-cell.was-moved,.game-thumbnail .quoridor-cell.was-from{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--board-wood-line) 28%, transparent)}.game-thumbnail .bt-square.was-moved{box-shadow:none}.game-thumbnail:has(.abalone-board){aspect-ratio:1;grid-template-columns:minmax(0,1fr);align-content:center;display:grid}.game-thumbnail .abalone-cell.was-moved .abalone-marble{box-shadow:var(--piece-depth)}.primary-button{height:36px;padding:0 var(--sp-4);color:var(--accent-ink);background:var(--accent);border-radius:var(--r-control);cursor:pointer;white-space:nowrap;transition:background-color var(--fast) var(--ease-soft), transform var(--fast) var(--ease-out);border:0;justify-content:center;align-items:center;font-size:14px;font-weight:650;text-decoration:none;display:inline-flex}.primary-button:hover:not(:disabled){background:var(--accent-hover)}.primary-button:active:not(:disabled){transform:translateY(1px)}.primary-button:disabled{opacity:.4;cursor:default}.morris-board,.checkers-board,.wallgo-board{box-shadow:0 0 0 var(--board-frame) var(--board-rim)}.board-instruction{color:var(--text);margin:0;font-size:14px;font-weight:650;line-height:1.4}.board-instruction.is-capture{color:var(--danger)}.board-root{display:contents}.morris-board{width:min(100%, var(--board-size));aspect-ratio:1;background-color:var(--board-wood-light);border-radius:var(--r-control);margin:0 auto;position:relative}.board-lines{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.board-lines path{fill:none;stroke:var(--board-wood-line);stroke-width:1.25px;stroke-linecap:square;stroke-linejoin:miter;vector-effect:non-scaling-stroke}.point{z-index:2;aspect-ratio:1;cursor:pointer;width:clamp(25px,6.5%,44px);transition:transform var(--base) var(--ease-out), filter var(--fast) var(--ease-soft), opacity var(--fast) var(--ease-soft);background:0 0;border:0;border-radius:50%;padding:0;position:absolute;transform:translate(-50%,-50%)scale(1)}.point:disabled{cursor:default}.point-core{background:var(--board-wood-line);box-shadow:0 0 0 3px var(--board-wood-light);transition:inset var(--base) var(--ease-out), background-color var(--base) var(--ease-soft), box-shadow var(--base) var(--ease-soft);border-radius:50%;display:block;position:absolute;inset:32%}.point:not(:disabled):hover{transform:translate(-50%,-50%)scale(1.08)}.piece-white{--piece-fill:var(--piece-white);--piece-edge:var(--piece-white-edge);--piece-mark:var(--piece-white-mark);--piece-hl:#ffffffd9;--piece-sh:#4c403233}.piece-black{--piece-fill:var(--piece-black);--piece-edge:var(--piece-black-edge);--piece-mark:var(--piece-black-mark);--piece-hl:#fff3;--piece-sh:#0000008c}.piece-white,.piece-black{--piece-depth:0 1px 2px #190e0866, 0 3px 7px #190e0842, inset 0 2px 1px var(--piece-hl), inset 0 -3px 4px var(--piece-sh)}.point.piece .point-core{background:var(--piece-fill);border:2px solid var(--piece-edge);box-shadow:var(--piece-depth);inset:7%}.point.is-legal .point-core{background:var(--piece-white);box-shadow:0 0 0 2px var(--piece-white-edge), 0 0 0 6px color-mix(in srgb, var(--piece-white) 32%, transparent);animation:legal-pulse 1.5s var(--ease-soft) infinite;inset:25%}.point.is-selected .point-core{box-shadow:0 0 0 5px color-mix(in srgb, var(--accent) 42%, transparent), var(--piece-depth);transform:scale(1.06)}.point.is-capturable .point-core{box-shadow:0 0 0 5px color-mix(in srgb, var(--danger) 48%, transparent), var(--piece-depth);animation:capture-pulse 1s var(--ease-soft) infinite alternate}.point.was-moved .point-core{border-color:var(--last-move)}@keyframes legal-pulse{50%{box-shadow:0 0 0 2px var(--piece-white-edge), 0 0 0 9px color-mix(in srgb, var(--piece-white) 10%, transparent)}}@keyframes capture-pulse{to{transform:scale(1.08)}}.checkers-board{width:min(100%, var(--board-size));aspect-ratio:1;border-radius:var(--r-control);grid-template-rows:repeat(8,minmax(0,1fr));grid-template-columns:repeat(8,minmax(0,1fr));margin:0 auto;display:grid;overflow:hidden;container-type:inline-size}.checker-square{min-width:0;min-height:0;transition:background-color var(--fast) var(--ease-soft);border:0;border-radius:0;place-items:center;padding:8%;display:grid;position:relative;overflow:hidden}.checker-square.is-light{background-color:var(--board-wood-light)}.checker-square.is-dark{background-color:var(--board-wood-dark)}.checker-square:disabled{cursor:default}.checker-square:not(:disabled){cursor:pointer}.checker-square.is-light:not(:disabled):hover{background-color:var(--board-wood-light-hover)}.checker-square.is-dark:not(:disabled):hover{background-color:var(--board-wood-dark-hover)}.checker-square.is-legal:after{aspect-ratio:1;content:"";background:var(--piece-white);width:22%;box-shadow:0 0 0 2px var(--piece-white-edge), 0 0 0 6px color-mix(in srgb, var(--piece-white) 32%, transparent);animation:legal-pulse 1.5s var(--ease-soft) infinite;border-radius:50%;position:absolute}.checker-square:focus-visible{z-index:3;outline:3px solid var(--accent-ink);outline-offset:-3px;box-shadow:inset 0 0 0 6px var(--board-wood-line)}.checker-square.was-moved{box-shadow:inset 0 0 0 3px var(--last-move)}.checker-piece{z-index:1;aspect-ratio:1;background:var(--piece-fill);border:2px solid var(--piece-edge);width:78%;box-shadow:var(--piece-depth);transition:transform var(--base) var(--ease-out), box-shadow var(--base) var(--ease-soft);border-radius:50%;display:block;position:relative;transform:scale(1)}.checker-square:not(:disabled):hover .checker-piece{transform:scale(1.06)}.checker-square.is-selected .checker-piece{box-shadow:0 0 0 3px var(--accent), 0 0 0 5px var(--piece-white), 0 0 0 6px var(--board-wood-line), var(--piece-depth);transform:scale(1.06)}.checker-square.is-capture-flash .checker-piece{box-shadow:0 0 0 4px var(--danger), 0 0 0 7px var(--piece-white), var(--piece-depth);animation:checkers-capture-flash .9s var(--ease-out)}.checker-square.is-capture-flash:not(:has(.checker-piece)):after{content:"";aspect-ratio:1;background:var(--danger);width:22%;box-shadow:0 0 0 2px var(--piece-white), 0 0 0 6px color-mix(in srgb, var(--danger) 36%, transparent);animation:checkers-capture-flash .9s var(--ease-out);border-radius:50%;position:absolute}@keyframes checkers-capture-flash{45%{transform:scale(1.08)}}.checker-piece.is-king:after{content:"K";color:var(--piece-mark);border:2px solid;border-radius:50%;place-items:center;font-family:Georgia,Times New Roman,serif;font-size:3.2cqw;line-height:1;display:grid;position:absolute;inset:22%}.wallgo-controls{align-items:center;gap:0 var(--sp-2);flex-wrap:wrap;display:flex}.wallgo-board{--wg-wall:clamp(4px, 1vw, 6px);--wg-hit:clamp(22px, 4.4vw, 30px);grid-template:repeat(var(--n), minmax(0, 1fr)) / repeat(var(--n), minmax(0, 1fr));width:min(100%, var(--board-size));aspect-ratio:1;background-color:var(--board-wood-light);border-radius:var(--r-control);margin:0 auto;display:grid;position:relative}.wallgo-cell{min-width:0;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--board-wood-line) 22%, transparent);transition:background-color var(--fast) var(--ease-soft);background:0 0;border:0;border-radius:0;place-items:center;padding:10%;display:grid;position:relative}.wallgo-cell:before{content:"";pointer-events:none;transition:background-color var(--base) var(--ease-soft);position:absolute;inset:0}.wallgo-cell.is-owned-white:before{background:color-mix(in srgb, var(--piece-white) 34%, transparent)}.wallgo-cell.is-owned-black:before{background:color-mix(in srgb, var(--piece-black) 17%, transparent)}.wallgo-cell:disabled{cursor:default}.wallgo-cell:not(:disabled){cursor:pointer}.wallgo-cell:not(:disabled):hover{background-color:color-mix(in srgb, var(--board-wood-light-hover) 70%, transparent)}.wallgo-cell:focus-visible{z-index:3;outline:3px solid var(--accent-ink);outline-offset:-3px;box-shadow:inset 0 0 0 6px var(--board-wood-line)}.wallgo-cell.was-moved{box-shadow:inset 0 0 0 3px var(--last-move)}.wallgo-cell.is-legal:after{aspect-ratio:1;content:"";background:var(--piece-white);width:22%;box-shadow:0 0 0 2px var(--piece-white-edge), 0 0 0 6px color-mix(in srgb, var(--piece-white) 32%, transparent);animation:legal-pulse 1.5s var(--ease-soft) infinite;border-radius:50%;position:absolute}.wallgo-cell.is-origin:after{aspect-ratio:1;content:"";border:2px dashed color-mix(in srgb, var(--board-wood-line) 65%, transparent);border-radius:50%;width:62%;position:absolute}.wallgo-cell.is-stay:after{aspect-ratio:1;content:"";width:100%;box-shadow:0 0 0 2px var(--piece-white-edge), 0 0 0 7px color-mix(in srgb, var(--piece-white) 32%, transparent);animation:legal-pulse 1.5s var(--ease-soft) infinite;pointer-events:none;border-radius:50%;position:absolute}.wallgo-piece{z-index:1;aspect-ratio:1;background:var(--piece-fill);border:2px solid var(--piece-edge);width:100%;box-shadow:var(--piece-depth);transition:transform var(--base) var(--ease-out), box-shadow var(--base) var(--ease-soft);border-radius:50%;display:block;position:relative;transform:scale(1)}.wallgo-cell:not(:disabled):hover .wallgo-piece{transform:scale(1.06)}.wallgo-cell.is-selected .wallgo-piece,.wallgo-cell.is-target .wallgo-piece{box-shadow:0 0 0 3px var(--accent), 0 0 0 5px var(--piece-white), 0 0 0 6px var(--board-wood-line), var(--piece-depth);transform:scale(1.06)}.wallgo-cell.is-stay .wallgo-piece{box-shadow:0 0 0 3px var(--piece-white), 0 0 0 5px var(--piece-white-edge), var(--piece-depth)}.wallgo-walls{z-index:2;pointer-events:none;position:absolute;inset:0}.wallgo-wall,.wallgo-edge{position:absolute}.wallgo-wall{background:var(--board-wood-line)}.wallgo-wall.is-vertical{top:calc(var(--y) * 100% / var(--n) - var(--wg-wall) / 2);left:calc(var(--x) * 100% / var(--n));width:var(--wg-wall);height:calc(100% / var(--n) + var(--wg-wall));transform:translate(-50%)}.wallgo-wall.is-horizontal{top:calc(var(--y) * 100% / var(--n));left:calc(var(--x) * 100% / var(--n) - var(--wg-wall) / 2);width:calc(100% / var(--n) + var(--wg-wall));height:var(--wg-wall);transform:translateY(-50%)}.wallgo-wall.is-new{animation:wall-raise var(--shape) var(--ease-out)}.wallgo-wall.is-mark{background:var(--last-move);box-shadow:0 0 0 2px var(--last-move);animation:wall-raise var(--shape) var(--ease-out)}@keyframes wall-raise{0%{opacity:0}}.wallgo-edge{z-index:1;cursor:pointer;background:0 0;border:0;padding:0}.wallgo-edge:after{content:"";background:var(--piece-white);opacity:.9;box-shadow:0 0 0 1px var(--piece-white-edge);transition:opacity var(--fast) var(--ease-soft), transform var(--fast) var(--ease-out);position:absolute}.wallgo-edge:hover:after,.wallgo-edge:focus-visible:after{opacity:1;transform:scale(1.08)}.wallgo-edge.is-vertical{top:calc(var(--y) * 100% / var(--n));left:calc(var(--x) * 100% / var(--n));width:var(--wg-hit);height:calc(100% / var(--n));transform:translate(-50%)}.wallgo-edge.is-vertical:after{top:calc(var(--wg-wall) / 2);bottom:calc(var(--wg-wall) / 2);left:calc(50% - var(--wg-wall) / 2);width:var(--wg-wall)}.wallgo-edge.is-horizontal{top:calc(var(--y) * 100% / var(--n));left:calc(var(--x) * 100% / var(--n));width:calc(100% / var(--n));height:var(--wg-hit);transform:translateY(-50%)}.wallgo-edge.is-horizontal:after{left:calc(var(--wg-wall) / 2);right:calc(var(--wg-wall) / 2);top:calc(50% - var(--wg-wall) / 2);height:var(--wg-wall)}.wallgo-edge:focus-visible{outline-offset:-2px}.hex-board{width:min(100%, calc(var(--board-size) * var(--board-aspect,1)));margin:0 auto;position:relative}.hex-backdrop,.hex-chain{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.hex-chain{z-index:3}.hex-frame{fill:var(--board-rim);stroke:var(--board-rim);stroke-linejoin:round}.hex-goal{fill:var(--piece-fill);stroke:var(--piece-edge);stroke-width:.04px;stroke-linejoin:miter}.hex-surface{fill:var(--board-wood-light)}.hex-lines{fill:none;stroke:color-mix(in srgb, var(--board-wood-line) 38%, transparent);stroke-width:1px;vector-effect:non-scaling-stroke}.hex-chain polyline{fill:none;stroke:var(--piece-mark);stroke-width:.1px;stroke-linecap:round;stroke-linejoin:round;opacity:.85}.hex-cell{z-index:1;width:var(--hw);height:var(--hh);clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);cursor:default;transition:background-color var(--fast) var(--ease-soft);background:0 0;border:0;border-radius:0;place-items:center;padding:0;display:grid;position:absolute}.hex-cell[aria-disabled=false]{cursor:pointer}.hex-cell[aria-disabled=false]:hover{background-color:color-mix(in srgb, var(--board-wood-light-hover) 70%, transparent)}.hex-cell:focus-visible{z-index:2;outline:0}.hex-cell:focus-visible:before,.hex-cell:focus-visible:after{z-index:2;content:"";pointer-events:none;position:absolute;inset:0}.hex-cell:focus-visible:before{background:var(--accent-ink);clip-path:polygon(evenodd,50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%,50% 4%,96% 27%,96% 73%,50% 96%,4% 73%,4% 27%)}.hex-cell:focus-visible:after{background:var(--board-wood-line);clip-path:polygon(evenodd,50% 4%,96% 27%,96% 73%,50% 96%,4% 73%,4% 27%,50% 10%,90% 30%,90% 70%,50% 90%,10% 70%,10% 30%)}.hex-stone{z-index:1;aspect-ratio:1;background:var(--piece-fill);border:2px solid var(--piece-edge);width:74%;box-shadow:var(--piece-depth);animation:hex-place var(--base) var(--ease-out);transition:opacity var(--base) var(--ease-soft), box-shadow var(--fast) var(--ease-soft);border-radius:50%;display:block;position:relative}.hex-stone.is-ghost{opacity:0;box-shadow:none;transition:opacity var(--fast) var(--ease-soft);animation:none}.hex-cell[aria-disabled=false]:hover .is-ghost,.hex-cell[aria-disabled=false]:focus-visible .is-ghost{opacity:.6}.hex-cell.was-moved .hex-stone{box-shadow:0 0 0 2px var(--last-move), var(--piece-depth)}@keyframes hex-place{0%{opacity:0;transform:scale(.7)}}.abalone-board{width:min(100%, calc(var(--board-size) * var(--board-aspect,1)));margin:0 auto;position:relative}.abalone-backdrop,.abalone-line{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.abalone-line{z-index:3}.abalone-line line{stroke:var(--accent);stroke-width:.08px;stroke-linecap:round}.abalone-frame{fill:var(--board-rim);stroke:var(--board-rim);stroke-linejoin:round}.abalone-surface{fill:var(--board-wood-light);stroke:var(--board-wood-light);stroke-linejoin:round}.abalone-socket{fill:color-mix(in srgb, var(--board-wood-line) 28%, transparent)}.abalone-cell{z-index:1;width:var(--cw);height:var(--ch);cursor:default;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute}.abalone-cell[aria-disabled=false]{cursor:pointer}.abalone-cell.is-selected,.abalone-cell.is-pushed{z-index:2}.abalone-cell:focus-visible{z-index:3;outline:0}.abalone-cell:focus-visible:after{border:3px solid var(--accent-ink);box-shadow:inset 0 0 0 3px var(--board-wood-line);content:"";pointer-events:none;border-radius:50%;position:absolute;inset:0}.abalone-marble{aspect-ratio:1;background:var(--piece-fill);border:2px solid var(--piece-edge);width:84%;box-shadow:var(--piece-depth);animation:abalone-place var(--base) var(--ease-out);transition:transform var(--fast) var(--ease-out), box-shadow var(--fast) var(--ease-soft), opacity var(--fast) var(--ease-soft);border-radius:50%;display:block;position:relative}.abalone-cell[aria-disabled=false]:hover .abalone-marble{transform:scale(1.05)}.abalone-cell.was-moved .abalone-marble{box-shadow:0 0 0 2px var(--last-move), var(--piece-depth)}.abalone-cell .abalone-marble.is-selected{box-shadow:0 0 0 3px var(--accent), 0 0 0 5px var(--piece-white), 0 0 0 6px var(--board-wood-line), var(--piece-depth);transform:scale(1.06)}.abalone-cell.is-pushable .abalone-marble{box-shadow:0 0 0 2px var(--danger), var(--piece-depth)}.abalone-cell.is-pushed .abalone-marble{box-shadow:0 0 0 3px var(--danger), 0 0 0 5px var(--piece-white), 0 0 0 6px var(--board-wood-line), var(--piece-depth)}.abalone-cell.is-off .abalone-marble{opacity:.75}.abalone-threat{z-index:1;fill:none;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.abalone-threat circle{cx:50;cy:50;r:47.5}.abalone-threat .under{stroke:var(--board-wood-line);stroke-width:9.5px}.abalone-threat .dashes{stroke:var(--danger);stroke-width:5.5px;stroke-dasharray:17 12.5;stroke-linecap:butt}.abalone-marble.is-ghost{opacity:.55;animation:none}.abalone-off{z-index:2;fill:none;width:52%;stroke:var(--accent-ink);stroke-width:3.6px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;position:absolute}.abalone-target{z-index:4;width:var(--cw);height:var(--ch);color:var(--piece-white-edge);cursor:pointer;animation:abalone-target-in var(--fast) var(--ease-out);background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute}.abalone-target:before{aspect-ratio:1;background:var(--piece-white);content:"";width:62%;transition:transform var(--fast) var(--ease-out), background-color var(--fast) var(--ease-soft);border:2px solid;border-radius:50%;position:absolute}.abalone-target svg{fill:none;stroke:currentColor;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;width:44%;transition:stroke var(--fast) var(--ease-soft);position:relative}.abalone-target:hover:before,.abalone-target:focus-visible:before{transform:scale(1.2)}.abalone-target:focus-visible{outline:3px solid var(--accent-ink);outline-offset:-3px;box-shadow:inset 0 0 0 6px var(--board-wood-line)}.abalone-target.is-push{color:var(--danger)}.abalone-count{color:var(--piece-white);white-space:nowrap;background:var(--board-wood-line);border-radius:var(--r-detail);box-shadow:0 0 0 1px var(--piece-white);pointer-events:none;padding:0 3px;font:600 10px/12px Commit Mono,monospace;position:absolute;bottom:3%;left:50%;translate:-50%}.abalone-target.is-push svg{translate:0 -12%}.abalone-target.is-off:before{background:var(--danger);border-color:var(--piece-white-edge)}.abalone-target.is-off svg{stroke:var(--piece-white)}@keyframes abalone-place{0%{opacity:0;transform:scale(.7)}}@keyframes abalone-target-in{0%{opacity:0;transform:scale(.7)}}.othello-controls{align-items:center;display:flex}.othello-pass{padding:4px var(--sp-3)}.othello-board{--ot-frame:clamp(4px, 1vw, 6px);width:min(100%, var(--board-size));aspect-ratio:1;background-color:var(--board-wood-light);border-radius:var(--r-control);box-shadow:0 0 0 var(--ot-frame) var(--board-rim);grid-template:repeat(8,minmax(0,1fr))/repeat(8,minmax(0,1fr));margin:0 auto;display:grid}.othello-cell{min-width:0;min-height:0;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--board-wood-line) 35%, transparent);transition:background-color var(--fast) var(--ease-soft);background:0 0;border:0;border-radius:0;place-items:center;padding:9%;display:grid;position:relative}.othello-cell:disabled{cursor:default}.othello-cell:not(:disabled){cursor:pointer}.othello-cell:not(:disabled):hover{background-color:color-mix(in srgb, var(--board-wood-light-hover) 70%, transparent)}.othello-cell:focus-visible{z-index:3;outline:3px solid var(--accent-ink);outline-offset:-3px;box-shadow:inset 0 0 0 6px var(--board-wood-line)}.othello-cell.was-moved{box-shadow:inset 0 0 0 3px var(--last-move)}.othello-cell.is-legal:after{aspect-ratio:1;content:"";background:color-mix(in srgb, var(--board-wood-line) 72%, transparent);width:24%;transition:width var(--base) var(--ease-out), background-color var(--base) var(--ease-soft), border-color var(--base) var(--ease-soft), box-shadow var(--base) var(--ease-soft);border:2px solid #0000;border-radius:50%;position:absolute}.othello-cell.is-legal:hover:after,.othello-cell.is-legal:focus-visible:after{background:color-mix(in srgb, var(--piece-fill) 62%, transparent);border-color:color-mix(in srgb, var(--piece-edge) 62%, transparent);width:82%}.othello-disc{z-index:1;aspect-ratio:1;background:var(--piece-fill);border:2px solid var(--piece-edge);width:100%;box-shadow:var(--piece-depth);border-radius:50%;display:block;position:relative}.othello-disc.is-placed{animation:disc-place var(--base) var(--ease-out)}.othello-disc.is-flipped{animation:disc-flip var(--shape) var(--ease-out)}@keyframes disc-place{0%{opacity:0;transform:scale(.6)}}@keyframes disc-flip{0%{transform:scaleX(.1)}}.quoridor-controls{align-items:center;gap:var(--sp-2) var(--sp-4);flex-wrap:wrap;display:flex}.quoridor-controls .text-button{transition:color var(--fast) var(--ease-soft), box-shadow var(--fast) var(--ease-soft);padding:2px 0;box-shadow:inset 0 -2px #0000}.quoridor-controls .text-button[aria-pressed=true]{color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent)}.quoridor-board{--q-wall:clamp(4px, 1vw, 6px);width:min(100%, var(--board-size));aspect-ratio:1;background-color:var(--board-wood-light);border-radius:var(--r-control);box-shadow:0 0 0 var(--q-wall) var(--board-rim);grid-template:repeat(9,minmax(0,1fr))/repeat(9,minmax(0,1fr));margin:0 auto;display:grid;position:relative}.quoridor-cell{min-width:0;min-height:0;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--board-wood-line) 28%, transparent);transition:background-color var(--fast) var(--ease-soft);background:0 0;border:0;border-radius:0;place-items:center;padding:12%;display:grid;position:relative}.quoridor-cell:before{content:"";pointer-events:none;position:absolute;inset:0}.quoridor-cell.is-goal-white:before{background:color-mix(in srgb, var(--piece-white) 34%, transparent)}.quoridor-cell.is-goal-black:before{background:color-mix(in srgb, var(--piece-black) 17%, transparent)}.quoridor-cell:disabled{cursor:default}.quoridor-cell:not(:disabled){cursor:pointer}.quoridor-cell:not(:disabled):hover{background-color:color-mix(in srgb, var(--board-wood-light-hover) 70%, transparent)}.quoridor-cell:focus-visible{z-index:3;outline:3px solid var(--accent-ink);outline-offset:-3px;box-shadow:inset 0 0 0 6px var(--board-wood-line)}.quoridor-cell.was-moved{box-shadow:inset 0 0 0 3px var(--last-move)}.quoridor-cell.was-from{box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--last-move) 45%, transparent)}.quoridor-cell.is-legal:after{aspect-ratio:1;content:"";background:color-mix(in srgb, var(--board-wood-line) 72%, transparent);width:24%;transition:width var(--base) var(--ease-out), background-color var(--base) var(--ease-soft), border-color var(--base) var(--ease-soft);border:2px solid #0000;border-radius:50%;position:absolute}.quoridor-cell.is-legal:hover:after,.quoridor-cell.is-legal:focus-visible:after{background:color-mix(in srgb, var(--piece-fill) 62%, transparent);border-color:color-mix(in srgb, var(--piece-edge) 62%, transparent);width:76%}.quoridor-pawn{z-index:1;aspect-ratio:1;background:var(--piece-fill);border:2px solid var(--piece-edge);width:100%;box-shadow:var(--piece-depth);border-radius:50%;display:block;position:relative}.quoridor-pawn.is-landed{animation:quoridor-land var(--base) var(--ease-out)}@keyframes quoridor-land{0%{opacity:0;transform:scale(.7)}}.quoridor-walls{z-index:2;pointer-events:none;position:absolute;inset:0}.quoridor-wall,.quoridor-node{position:absolute}.quoridor-wall{background:var(--board-wood-line)}.quoridor-wall.is-h{top:calc((var(--r) + 1) * 100% / 9);left:calc(var(--c) * 100% / 9 - var(--q-wall) / 2);width:calc(200% / 9 + var(--q-wall));height:var(--q-wall);transform:translateY(-50%)}.quoridor-wall.is-v{top:calc(var(--r) * 100% / 9 - var(--q-wall) / 2);left:calc((var(--c) + 1) * 100% / 9);width:var(--q-wall);height:calc(200% / 9 + var(--q-wall));transform:translate(-50%)}.quoridor-wall.is-new{animation:quoridor-wall-raise var(--shape) var(--ease-out)}.quoridor-wall.is-mark{background:var(--last-move);box-shadow:0 0 0 2px var(--last-move);animation:quoridor-wall-raise var(--shape) var(--ease-out)}@keyframes quoridor-wall-raise{0%{opacity:0}}.quoridor-node{top:calc((var(--r) + 1) * 100% / 9);left:calc((var(--c) + 1) * 100% / 9);width:var(--q-wall);aspect-ratio:1;background:color-mix(in srgb, var(--board-wood-line) 60%, transparent);border-radius:50%;transform:translate(-50%,-50%)}.quoridor-wall.is-ghost{background:var(--piece-fill);box-shadow:0 0 0 1px var(--piece-edge);opacity:.88;animation:none}.quoridor-wall.is-ghost.is-focus{box-shadow:0 0 0 1px var(--piece-edge), 0 0 0 3px var(--accent-ink), 0 0 0 4px var(--board-wood-line)}.quoridor-slot{z-index:3;cursor:pointer;background:0 0;border:0;padding:0;position:absolute}.quoridor-slot:focus-visible{outline:0}.quoridor-slot.is-h{z-index:4;clip-path:polygon(0 0, calc(var(--nx) - var(--nw)) 0, calc(var(--nx) - 2px) calc(50% - 2px), calc(var(--nx) + 2px) calc(50% - 2px), calc(var(--nx) + var(--nw)) 0, 100% 0, 100% 100%, calc(var(--nx) + var(--nw)) 100%, calc(var(--nx) + 2px) calc(50% + 2px), calc(var(--nx) - 2px) calc(50% + 2px), calc(var(--nx) - var(--nw)) 100%, 0 100%)}.quoridor-slot.is-v{clip-path:polygon(0 0, 0 calc(var(--nx) - var(--nw)), 50% var(--nx), 0 calc(var(--nx) + var(--nw)), 0 100%, 100% 100%, 100% calc(var(--nx) + var(--nw)), 50% var(--nx), 100% calc(var(--nx) - var(--nw)), 100% 0)}.breakthrough-board{--bt-frame:clamp(4px, 1vw, 6px);width:min(100%, var(--board-size));aspect-ratio:1;background-color:var(--board-wood-light);border-radius:var(--r-control);box-shadow:0 0 0 var(--bt-frame) var(--board-rim);grid-template-rows:repeat(8,minmax(0,1fr));grid-template-columns:repeat(8,minmax(0,1fr));margin:0 auto;display:grid}.bt-square{cursor:default;min-width:0;min-height:0;transition:background-color var(--fast) var(--ease-soft);border:0;border-radius:0;place-items:center;padding:0;display:grid;position:relative}.bt-square.is-light{background-color:var(--board-wood-light)}.bt-square.is-dark{background-color:var(--board-wood-dark)}.bt-square[aria-disabled=false]{cursor:pointer}.bt-square.is-light[aria-disabled=false]:hover{background-color:var(--board-wood-light-hover)}.bt-square.is-dark[aria-disabled=false]:hover{background-color:var(--board-wood-dark-hover)}.bt-square:focus-visible{z-index:3;outline:3px solid var(--accent-ink);outline-offset:-3px;box-shadow:inset 0 0 0 6px var(--board-wood-line)}.bt-square.was-moved{box-shadow:inset 0 0 0 2px var(--last-move)}.bt-square.was-moved:focus-visible{box-shadow:inset 0 0 0 6px var(--board-wood-line)}.bt-piece{z-index:1;aspect-ratio:1;background:var(--piece-fill);border:2px solid var(--piece-edge);width:74%;box-shadow:var(--piece-depth);transition:transform var(--base) var(--ease-out), box-shadow var(--base) var(--ease-soft);border-radius:50%;display:block;position:relative;transform:scale(1)}.bt-square.is-movable:hover .bt-piece{transform:scale(1.06)}.bt-square.is-light.is-selected,.bt-square.is-light.is-selected[aria-disabled=false]:hover{background-color:color-mix(in srgb, var(--accent) 30%, var(--board-wood-light))}.bt-square.is-dark.is-selected,.bt-square.is-dark.is-selected[aria-disabled=false]:hover{background-color:color-mix(in srgb, var(--accent) 30%, var(--board-wood-dark))}.bt-square.is-selected .bt-piece,.bt-square.is-winner .bt-piece{box-shadow:0 0 0 3px var(--accent), 0 0 0 5px var(--piece-white), 0 0 0 6px var(--board-wood-line), var(--piece-depth);transform:scale(1.06)}.bt-square.is-step:after{aspect-ratio:1;content:"";background:var(--piece-white);width:24%;box-shadow:0 0 0 2px var(--board-wood-line);pointer-events:none;border-radius:50%;position:absolute}.bt-square.is-light.is-capture,.bt-square.is-light.is-capture[aria-disabled=false]:hover{background-color:color-mix(in srgb, var(--danger) 38%, var(--board-wood-light))}.bt-square.is-dark.is-capture,.bt-square.is-dark.is-capture[aria-disabled=false]:hover{background-color:color-mix(in srgb, var(--danger) 38%, var(--board-wood-dark))}.bt-square.is-capture .bt-piece{box-shadow:0 0 0 3px var(--danger), 0 0 0 5px var(--piece-white), 0 0 0 6px var(--board-wood-line), var(--piece-depth)}.not-found{padding:clamp(48px, 12svh, 120px) var(--gutter)}.not-found h1{max-width:16ch;margin-bottom:var(--sp-4);letter-spacing:-.025em;font-size:clamp(36px,6vw,64px);line-height:1.05}.not-found-note{max-width:52ch;margin:0 0 var(--sp-5);color:var(--text-2)}.not-found .primary-button{height:40px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}body:has(.help-dialog[open]){padding-right:var(--sbw,0px);overflow:hidden}.help-dialog{--help-fig:200px;--help-pad:var(--sp-6);width:min(100% - 32px,760px);max-width:none;max-height:min(85svh,760px);color:var(--text);background:var(--surface);border-radius:var(--r-surface);box-shadow:var(--shadow), 0 0 0 1px var(--line);opacity:1;transition:opacity var(--base) var(--ease-out), transform var(--base) var(--ease-out);border:0;padding:0;overflow:hidden;transform:translateY(0)}.help-dialog:has(.hex-board,.abalone-board){--help-fig:288px}.help-dialog[open]{flex-direction:column;display:flex}.help-dialog::backdrop{background:var(--scrim)}@starting-style{.help-dialog[open]{opacity:0;transform:translateY(8px)}}.help-panel{flex-direction:column;flex:auto;min-height:0;display:flex}.help-header{justify-content:space-between;align-items:baseline;gap:var(--sp-4);padding:var(--sp-4) var(--help-pad) var(--sp-3);border-bottom:1px solid var(--line);display:flex}.help-title{letter-spacing:-.01em;margin:0;font-size:24px;line-height:1.2}.help-close{margin-right:calc(var(--sp-2) * -1);flex:none}.help-body{min-height:0;padding:0 var(--help-pad);overscroll-behavior:contain;flex:auto;overflow-y:auto}.help-body:focus-visible{outline-offset:-2px}.help-steps{margin:0;padding:0;list-style:none}.help-step{grid-template-columns:minmax(0, 1fr) var(--help-fig);column-gap:var(--sp-6);padding:var(--sp-5) 0;align-items:start;display:grid}.help-step+.help-step{border-top:1px solid var(--line)}.help-step-copy{gap:var(--sp-2);flex-direction:column;grid-column:1;min-width:0;display:flex}.help-step-title{margin:0;font-size:18px;line-height:1.25}.help-step-text{color:var(--text-2);margin:0;font-size:15px;line-height:1.55}.help-figure{grid-area:1/2;width:100%;margin:0}.help-figure .game-thumbnail:has(.hex-board){aspect-ratio:auto;display:block}.help-figure .game-thumbnail:has(.abalone-board){aspect-ratio:auto;display:block}.help-figure .abalone-cell.was-moved .abalone-marble{box-shadow:0 0 0 2px var(--last-move), var(--piece-depth)}@media (width<=560px){.help-dialog{--help-pad:var(--sp-4);max-height:90svh}.help-title{font-size:20px}.help-step{row-gap:var(--sp-3);grid-template-columns:minmax(0,1fr)}.help-figure{width:min(100%, var(--help-fig));grid-area:auto/1}}body:has(.leave-dialog[open]){padding-right:var(--sbw,0px);overflow:hidden}.leave-dialog{width:fit-content;max-width:calc(100% - 32px);padding:var(--sp-5) var(--sp-5);color:var(--text);text-align:center;background:var(--surface);border-radius:var(--r-surface);box-shadow:var(--shadow), 0 0 0 1px var(--line);opacity:1;transition:opacity var(--base) var(--ease-out), transform var(--base) var(--ease-out);border:0;transform:translateY(0)}.leave-dialog::backdrop{background:var(--scrim)}@starting-style{.leave-dialog[open]{opacity:0;transform:translateY(8px)}}.leave-dialog .popover-title{margin-bottom:var(--sp-3)}.leave-dialog .popover-actions{justify-content:center}.leave-dialog .popover-actions button{box-sizing:border-box;min-width:88px;padding:0 var(--sp-4);border-style:solid;border-width:2px;font-size:14px;font-weight:650}.leave-dialog .quiet-button{border-color:var(--text-2)}.leave-dialog .danger-button{border-color:var(--danger)}.leave-dialog:not([data-input=keyboard]) button:focus-visible{outline:none}.nav-actions{align-items:center;gap:var(--sp-3);display:flex}a.text-button{text-decoration:none}.breadcrumbs{min-width:0;margin-right:var(--sp-3)}.breadcrumbs ol{align-items:baseline;min-width:0;margin:0;padding:0;list-style:none;display:flex}.crumb{align-items:baseline;min-width:0;font-size:15px;line-height:24px;display:flex}.crumb-home{flex:none;font-family:Georgia,Times New Roman,serif;font-size:19px}.crumb-sep{padding-inline:var(--sp-2);color:var(--muted)}.crumb-link{flex:none}.crumb-link,.crumb-current{padding:var(--sp-2) 0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.crumb-link{color:var(--text-2);transition:color var(--fast) var(--ease-soft);font-weight:650;text-decoration:none}.crumb-home .crumb-link{color:var(--text)}.crumb-link:hover{color:var(--accent)}.crumb-link:active{color:var(--accent-hover)}.crumb-link:focus-visible{border-radius:var(--r-control)}.crumb-current{color:var(--text);font-weight:650}.nav-link{padding:var(--sp-2) var(--sp-1);transition:color var(--fast) var(--ease-soft), box-shadow var(--fast) var(--ease-soft);font-size:15px;line-height:24px;box-shadow:inset 0 -2px #0000}.nav-link[aria-current=page]{color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent)}.copy-link{min-width:9ch;color:var(--accent);text-align:right;padding:0;font-family:Commit Mono,monospace;font-size:12px;font-weight:600;position:relative}.copy-link:after{content:"";position:absolute;inset:-10px -8px}.copy-link:hover:not(:disabled){color:var(--accent-hover);text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:1.5px}.copy-fallback{gap:var(--sp-1);display:grid}.copy-fallback input{width:100%;padding:var(--sp-2) var(--sp-3);color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-control);transition:border-color var(--fast) var(--ease-soft);font-family:Commit Mono,monospace;font-size:12px}.copy-fallback input:hover{border-color:var(--accent)}.history-page{padding:clamp(40px, 8svh, 72px) var(--gutter) 80px}.history-title{margin-bottom:var(--sp-5);letter-spacing:-.025em;padding-left:14px;font-size:34px;line-height:1.1}.history-note,.history-empty{color:var(--muted);margin:0;padding-left:14px;font-size:14px;line-height:1.5}.history-note{padding-top:var(--sp-4)}.history-empty{max-width:60ch;color:var(--text-2);font-size:16px}.history-table{border-collapse:collapse;width:min(100%,920px);font-size:15px}.history-table th,.history-table td{padding:var(--sp-3) var(--sp-4);text-align:left;vertical-align:baseline;border-bottom:1px solid var(--line);font-weight:400}.history-table thead th{padding-block:var(--sp-2);color:var(--muted);font-family:Commit Mono,monospace;font-size:12px;font-weight:600}.history-table tbody tr{transition:background-color var(--fast) var(--ease-soft)}.history-table tbody tr:focus-within{background:var(--surface-2)}@media (hover:hover){.history-table tbody tr:hover{background:var(--surface-2)}}.history-table tbody th{font-weight:650}.history-table .is-number{text-align:right;font-variant-numeric:tabular-nums}.history-table .is-action{text-align:right;white-space:nowrap;position:relative}.history-table td:not(.is-action):not(.is-number){color:var(--text-2)}.history-link{color:var(--text);transition:color var(--fast) var(--ease-soft);text-decoration:none}.history-link:hover{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.history-link:active{color:var(--accent-hover)}.history-table .popover.is-copy{text-align:left;white-space:normal;right:14px}@media (width>=561px){.history-table th:first-child{padding-left:14px}.history-table th:last-child,.history-table td:last-child{padding-right:14px}}@media (width<=560px){.history-page{padding-top:var(--sp-7)}.history-title,.history-note,.history-empty{padding-left:0}.history-table thead{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.history-table tr{align-items:baseline;column-gap:var(--sp-2);padding:var(--sp-3) 0;border-bottom:1px solid var(--line);grid-template-columns:auto auto 1fr;display:grid}.history-table th,.history-table td{border-bottom:0;padding:0;font-size:13px}.history-table tbody td:not(.is-action){white-space:nowrap}.history-table tbody th{grid-area:1/1/auto/3;font-size:15px}.history-table tbody tr{position:relative}.history-table .is-action{grid-area:1/3;justify-self:end;position:static}.history-table .popover.is-copy{right:0}.history-table tbody td:nth-child(2){grid-area:2/1}.history-table tbody td:nth-child(3){grid-area:2/2}.history-table .is-number{text-align:left;color:var(--text-2);grid-area:2/3;justify-self:start}.history-table tbody td:nth-child(2):after,.history-table tbody td:nth-child(3):after{content:"·";margin-left:var(--sp-2)}.history-table .is-number:after{content:" " attr(data-unit)}}@media (width<=340px){.history-table tbody td:not(.is-action){white-space:normal}}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.game-page{--page-pad:var(--sp-4);width:100%;height:calc(100svh - var(--nav-h));padding:var(--page-pad);justify-content:center;align-items:center;display:flex;container-type:inline-size}.play-layout{--gap:var(--sp-6);--info-w:168px;--rail-w:284px;--bar-h:44px;--bar-gap:var(--sp-2);--pad:var(--board-pad,0px);--avail-h:calc(100svh - var(--nav-h) - 2 * var(--page-pad));--actions-h:36px;--board-size:var(--bh);place-content:center;column-gap:var(--gap);width:100%;min-width:0}.board-slot{box-sizing:content-box;width:calc(var(--bh) * var(--board-aspect,1));height:var(--bh);padding:var(--pad);min-width:0}.layout-a{--avail-w:calc(100cqw - var(--info-w) - var(--rail-w) - 2 * var(--gap));--bh:max(240px, min(calc(var(--avail-h) - 2 * var(--pad)), calc((var(--avail-w) - 2 * var(--pad)) / var(--board-aspect,1))));--seat-h:128px;--instr-lines:4;grid-template-columns:minmax(var(--info-w), 1fr) auto minmax(var(--rail-w), 1fr);height:var(--avail-h);grid-template-rows:minmax(0,1fr);display:grid}.layout-a .board-slot{align-self:center}.layout-a .info-col{width:var(--info-w);justify-self:end}.layout-a .rail{width:var(--rail-w);justify-self:start}.info-col{flex-direction:column;justify-content:space-between;min-height:0;padding-left:14px;display:flex;position:relative}.stack{gap:var(--bar-gap);width:calc(var(--bh) * var(--board-aspect,1) + 2 * var(--pad));flex-direction:column;min-width:0;display:flex;position:relative}.rail{gap:var(--sp-2);flex-direction:column;min-width:0;min-height:0;display:flex;position:relative}.seat{min-width:0}.seat-id{align-items:baseline;gap:var(--sp-2);white-space:nowrap;min-width:0;display:flex}.seat-name{font-weight:650}.seat-id .seat-dot{align-self:center}.seat-fig{align-items:baseline;gap:0 var(--sp-2);min-width:0;display:flex}.seat-role{color:var(--muted);font-size:14px}.seat-dot,.move-dot{background:var(--dot-fill,var(--piece-fill));width:12px;height:12px;box-shadow:0 0 0 1px var(--dot-edge), inset 0 1px 0 var(--dot-hl);border-radius:50%;flex:none;display:inline-block}.move-dot{vertical-align:-1px;width:10px;height:10px;margin-right:6px}.seat-dot.piece-white,.move-dot.piece-white{--dot-edge:var(--piece-white-edge);--dot-hl:#ffffffe6}.seat-dot.piece-black,.move-dot.piece-black{--dot-edge:color-mix(in srgb, var(--piece-black-edge) 52%, transparent);--dot-hl:#ffffff3d}:root[data-theme=dark] .seat-dot.piece-black,:root[data-theme=dark] .move-dot.piece-black{--dot-fill:#3a3d3c;--dot-edge:#ffffff4d;--dot-hl:#ffffff38}.seat-tag{min-width:0;min-height:22px;color:var(--accent);white-space:nowrap;align-items:center;font-family:Commit Mono,monospace;font-size:12px;font-weight:600;display:flex;position:relative;overflow:hidden}.seat-tag-text{animation:tag-in var(--base) var(--ease-out)}@keyframes tag-in{0%{opacity:0;transform:translate(-4px)}}.thinking-line{border-radius:var(--r-detail);background:var(--accent);width:35%;height:2px;animation:thinking 1.25s var(--ease-soft) infinite alternate;position:absolute;bottom:0;left:0}@keyframes thinking{to{transform:translate(185%)}}.seat-num{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-family:Georgia,Times New Roman,serif;font-weight:400;line-height:1}.seat-unit,.seat-note{color:var(--muted);font-family:Commit Mono,monospace;font-size:12px;line-height:1.3}.seat-fig .seat-unit{line-height:1}.turn-rail{top:0;bottom:0;left:var(--rail-x,0);pointer-events:none;width:3px;position:absolute}.turn-bar{background:var(--accent);border-radius:var(--r-detail);opacity:0;clip-path:inset(0 0 calc(100% - var(--seat-h)) 0);transition:clip-path var(--slow) var(--ease-out), opacity var(--fast) var(--ease-soft);position:absolute;inset:0}.turn-rail.is-top .turn-bar,.turn-rail.is-bottom .turn-bar{opacity:1}.turn-rail.is-bottom .turn-bar{clip-path:inset(calc(100% - var(--seat-h)) 0 0 0)}.layout-stack .turn-rail{--rail-x:calc(var(--sp-3) * -1)}.seat.is-column{align-content:start;row-gap:var(--sp-1);height:var(--seat-h);grid-template-areas:"id""stat""tag";display:grid}.seat.is-column.is-bottom{align-content:end}.seat.is-column .seat-id{grid-area:id}.seat.is-column .seat-stat{align-items:baseline;gap:0 var(--sp-2);flex-wrap:wrap;grid-area:stat;display:flex}.seat.is-column .seat-fig{flex-wrap:wrap}.seat.is-column .seat-num{font-size:56px}.seat.is-column.has-word .seat-num.is-word{letter-spacing:0;font-size:21px;line-height:1.2}.seat.is-column .seat-note{flex-basis:100%}.seat.is-column .seat-tag{grid-area:tag}.seat.is-bar{align-items:center;gap:var(--sp-3);height:var(--bar-h);display:flex}.seat.is-bar .seat-tag{order:2;margin-left:auto}.seat.is-bar .seat-stat{align-items:center;gap:var(--sp-2);height:36px;padding:0 var(--sp-3);background:var(--surface-2);border-radius:var(--r-control);order:3;display:flex}.seat.is-bar .seat-num{font-size:24px}.seat.is-bar .seat-num.is-word{font-size:17px}.hint-block{gap:var(--sp-2);flex-direction:column;min-width:0;display:flex}.hint-block>*{flex:none}.hint-instruction{min-height:calc(var(--instr-lines,2) * 1.4em);display:grid}.hint-instruction>*{grid-area:1/1;min-width:0}.hint-block.is-mode .instruction-slot{visibility:hidden}.mode-label{color:var(--text-2);margin:0;font-size:14px;font-weight:650;line-height:1.4}.mode-label.is-reviewing{color:var(--accent)}.controls-slot{align-items:center;gap:var(--sp-2);flex-wrap:wrap;min-width:0;display:flex}.controls-slot:not(:empty){min-height:var(--actions-h)}.controls-slot>*{max-width:100%}.hint-block.is-over .controls-slot{visibility:hidden}.turn-slot{display:grid}.turn-slot>*{grid-area:1/1}.turn-hint{color:var(--text-2);margin:0;font-size:13px;line-height:1.45}.turn-hint.is-held{visibility:hidden}.review-note{color:var(--accent);font-weight:600}.hint-foot{z-index:1;gap:var(--sp-1);background:var(--bg);flex-direction:column;margin-top:auto;display:flex;position:sticky;bottom:0}.note-slot{gap:var(--sp-1);min-height:18px;display:grid}.status-note{color:var(--muted);margin:0;font-family:Commit Mono,monospace;font-size:12px;line-height:1.5}.status-note.is-urgent{color:var(--warning);font-weight:600}.info-col .hint-block{padding-block:var(--sp-4);overscroll-behavior:contain;scrollbar-width:thin;flex:1 1 0;overflow-y:auto}.move-list{contain:size;flex-direction:column;flex:1 1 0;min-height:96px;display:flex;position:relative}.move-list-head{justify-content:space-between;align-items:center;gap:var(--sp-2);border-bottom:1px solid var(--line);flex:none;height:32px;display:flex}.phase-label{min-width:0;color:var(--muted);overflow-wrap:anywhere;flex:auto;margin:0;font-family:Commit Mono,monospace;font-size:12px;font-weight:600;line-height:15px;overflow:hidden}.move-list-actions{flex:none;align-items:center;display:flex;position:relative}.move-list-scroll{overscroll-behavior:contain;scrollbar-width:thin;flex:auto;min-height:0;overflow-y:auto}.move-list-note{padding:var(--sp-2) var(--sp-1);background:var(--bg);border-top:1px solid var(--line);color:var(--muted);margin:0;font-family:Commit Mono,monospace;font-size:12px;line-height:1.5;position:sticky;bottom:0}.move-list-note.is-urgent{color:var(--warning);font-weight:600}.move-list.is-covered .move-list-scroll{padding-bottom:var(--banner-h,150px)}.move-list-scroll:focus-visible{outline-offset:-2px}.move-list table{table-layout:fixed;border-collapse:separate;border-spacing:0;width:100%;font-family:Commit Mono,monospace;font-size:12px;line-height:1.5}.move-list th,.move-list td{padding:3px var(--sp-1);text-align:left;vertical-align:top;font-weight:400}.move-list thead th{z-index:1;background:var(--bg);border-bottom:1px solid var(--line);color:var(--muted);padding-block:6px;position:sticky;top:0}.move-list thead th:first-child{width:34px;padding-inline:0 var(--sp-2);text-align:right}.move-list tbody th{padding-inline:0 var(--sp-2);text-align:right;color:var(--muted);font-variant-numeric:tabular-nums}.move-list tbody tr:nth-child(2n) th,.move-list tbody tr:nth-child(2n) td{background:var(--surface-2)}.move-text{width:100%;padding:0 var(--sp-1);border-radius:var(--r-detail);color:var(--text);font:inherit;text-align:left;overflow-wrap:anywhere;cursor:pointer;animation:move-in var(--fast) var(--ease-out);transition:background-color var(--fast) var(--ease-soft), color var(--fast) var(--ease-soft);background:0 0;border:0;margin:0;display:block}.move-text:hover{background:color-mix(in srgb, var(--text) 12%, transparent)}.move-text:focus-visible{outline-offset:-2px}.move-text.is-current,.move-text.is-current:hover{background:var(--accent);color:var(--accent-ink);font-weight:600}.move-extra{color:var(--muted);display:inline-block}.move-extra.is-capture{color:var(--accent);font-weight:600}.move-text.is-current .move-extra{color:inherit;opacity:.78}@keyframes move-in{0%{opacity:0}}.move-list-empty td{padding-block:var(--sp-3);color:var(--muted);font-family:Hanken Grotesk Variable,sans-serif;font-size:13px}.move-list .move-list-result td{padding-block:var(--sp-2);border-top:1px solid var(--line);background:0 0}.move-list-result strong{font-size:14px;font-weight:600;display:block}.move-list-result span{color:var(--text-2);font-family:Hanken Grotesk Variable,sans-serif;line-height:1.4;display:block}.replay-controls{gap:var(--sp-1);padding-top:var(--sp-2);border-top:1px solid var(--line);flex:none;grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.replay-button{height:36px;color:var(--text-2);border-radius:var(--r-control);cursor:pointer;transition:color var(--fast) var(--ease-soft), background-color var(--fast) var(--ease-soft);background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:flex}.replay-button svg{width:20px;height:20px}.replay-button:hover:not(:disabled){color:var(--text);background:var(--surface-2)}.replay-button:active:not(:disabled){background:color-mix(in srgb, var(--text) 14%, transparent)}.replay-button:disabled{opacity:.4;cursor:default}.actions{flex:none;align-items:center;gap:2px;display:flex;position:relative}.quiet-button{height:36px;padding:0 var(--sp-2);color:var(--text);border-radius:var(--r-control);cursor:pointer;white-space:nowrap;transition:color var(--fast) var(--ease-soft), background-color var(--fast) var(--ease-soft);background:0 0;border:0;justify-content:center;align-items:center;font-size:14px;font-weight:650;display:inline-flex}.quiet-button:hover:not(:disabled){color:var(--accent);text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:1.5px}.quiet-button:active:not(:disabled){color:var(--accent-hover)}.quiet-button:disabled{opacity:.4;cursor:default}.actions>.quiet-button:first-child{margin-left:calc(var(--sp-2) * -1)}.actions-primary{margin-left:auto;display:flex}.stable{display:inline-grid}.stable>*{grid-area:1/1}.stable-ghost{visibility:hidden}.danger-button{height:36px;padding:0 var(--sp-4);color:var(--bg);background:var(--danger);border-radius:var(--r-control);cursor:pointer;transition:filter var(--fast) var(--ease-soft), transform var(--fast) var(--ease-out);border:0;font-size:14px;font-weight:650}.danger-button:hover:not(:disabled){filter:brightness(.92)}.danger-button:active:not(:disabled){transform:translateY(1px)}.danger-button:disabled{opacity:.4;cursor:default}.popover{z-index:6;right:0;bottom:calc(100% + var(--sp-3));padding:var(--sp-3) var(--sp-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-surface);box-shadow:var(--shadow);animation:popover-in var(--base) var(--ease-out);position:absolute;left:0}.popover:after{content:"";bottom:-6px;left:calc(var(--caret-x,40px) - 5px);background:var(--surface);border-right:1px solid var(--line);border-bottom:1px solid var(--line);width:10px;height:10px;position:absolute;transform:rotate(45deg)}@keyframes popover-in{0%{opacity:0;transform:translateY(6px)}}.popover-title{margin:0 0 var(--sp-2);font-size:14px;font-weight:650;line-height:1.4}.popover-actions{justify-content:flex-end;gap:var(--sp-2);display:flex}.popover.is-note .popover-title{margin:0;font-weight:500}.popover.is-note .popover-actions{margin-top:var(--sp-1)}.popover.is-copy{top:calc(100% + var(--sp-2));width:248px;bottom:auto;left:auto;right:0}.popover.is-copy:after{display:none}.result-banner{--banner-h:150px;z-index:5;right:0;bottom:calc(var(--actions-h) + var(--sp-4));gap:var(--sp-1);padding:var(--sp-4);background:var(--surface-2);border-radius:var(--r-surface);animation:banner-in var(--shape) var(--ease-out);display:grid;position:absolute;left:0}@keyframes banner-in{0%{opacity:0;transform:translateY(10px)}}.banner-title{color:var(--text);letter-spacing:-.02em;margin:0;padding-right:36px;font-family:Georgia,Times New Roman,serif;font-size:30px;line-height:1.1}.banner-reason{color:var(--text-2);margin:0;font-size:14px;line-height:1.4}.banner-actions{gap:var(--sp-1);margin:var(--sp-1) 0 0 calc(var(--sp-2) * -1);display:flex}.banner-close{top:var(--sp-2);right:var(--sp-2);width:32px;height:32px;color:var(--text-2);border-radius:var(--r-control);cursor:pointer;transition:color var(--fast) var(--ease-soft), background-color var(--fast) var(--ease-soft);background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:flex;position:absolute}.banner-close:hover{color:var(--text);background:color-mix(in srgb, var(--text) 10%, transparent)}.banner-close:active{background:color-mix(in srgb, var(--text) 18%, transparent)}.banner-close svg{width:16px;height:16px}.setup-panel{gap:var(--sp-5);min-height:96px;padding-top:var(--sp-3);overscroll-behavior:contain;scrollbar-width:thin;contain:size;flex-direction:column;flex:1 1 0;display:flex;overflow-y:auto}.setup-group{gap:var(--sp-2);display:grid}.setup-label{color:var(--muted);margin:0;font-family:Commit Mono,monospace;font-size:12px;font-weight:600}.segmented{gap:0 var(--sp-4);flex-wrap:wrap;display:flex}.segmented-option{color:var(--text-2);border-radius:var(--r-detail);cursor:pointer;transition:color var(--fast) var(--ease-soft), box-shadow var(--base) var(--ease-out);background:0 0;border:0;padding:6px 0;font-size:14px;font-weight:650;position:relative;box-shadow:inset 0 -2px #0000}.segmented-option:hover{color:var(--text)}.segmented-option:active{color:var(--accent-hover)}.segmented-option[aria-checked=true]{color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent)}.setup-summaries{display:grid}.setup-summaries>*{grid-area:1/1}.setup-summary{color:var(--text-2);margin:0;font-size:14px;line-height:1.45}.setup-summary.is-hidden{visibility:hidden}@media (width>=900px) and (width<=1100px){.game-page{--page-pad:var(--sp-3)}.play-layout{--gap:var(--sp-5);--info-w:152px;--rail-w:262px}.layout-a{--seat-h:116px;--instr-lines:3}.layout-a .seat.is-column .seat-num{font-size:44px}.quiet-button{padding:0 6px;font-size:13px}.actions>.quiet-button:first-child,.controls-slot .wallgo-controls>.quiet-button{margin-left:-6px}.actions .primary-button{padding:0 var(--sp-3);font-size:13px}}.game-page.is-stacked{--page-pad:var(--sp-3);height:auto;min-height:calc(100svh - var(--nav-h));padding:var(--sp-3) var(--sp-4) var(--sp-6);align-items:flex-start}.layout-stack{--bar-h:40px;--bar-gap:6px;--seat-h:var(--bar-h);--pad:var(--board-pad,0px);--avail-w:100cqw;--bh:max(160px, min(calc((var(--avail-w) - 2 * var(--pad)) / var(--board-aspect,1)), calc(100svh - var(--nav-h) - 2 * var(--page-pad) - 2 * (var(--bar-h) + var(--bar-gap)) - 2 * var(--pad))));gap:var(--sp-3);flex-direction:column;display:flex}.layout-stack .stack{width:calc(var(--bh) * var(--board-aspect,1) + 2 * var(--pad));align-self:center;max-width:100%}.layout-stack .seat.is-bar .seat-stat{height:30px;padding:0 var(--sp-2)}.layout-stack .seat.is-bar .seat-num{font-size:20px}.layout-stack .seat.is-bar .seat-note{display:none}.layout-stack .hint-block{gap:var(--sp-1)}.layout-stack .hint-instruction,.layout-stack .note-slot{min-height:0}.layout-stack .hint-block:not(:has(.controls-slot:not(:empty))):not(.has-note) .hint-foot{display:none}.stack-hint{min-height:24px;display:grid}.stack-hint:not(:has(.mode-label,.turn-hint:not(.is-held),.controls-slot:not(:empty),.status-note,.result-banner)){display:none}.stack-hint>*{grid-area:1/1;min-width:0}.stack-hint .hint-block{align-self:stretch}.stack-hint .result-banner{align-self:stretch;position:relative;bottom:auto;left:auto;right:auto}.seat-instruction{pointer-events:none;flex:1 1 0;order:1;min-width:0}.seat-instruction:empty,.seat-instruction.is-held{display:none}.seat.is-bar:has(>.seat-instruction:not(:empty):not(.is-held)){gap:var(--sp-2)}.seat.is-bar:has(>.seat-instruction:not(:empty):not(.is-held))>.seat-tag:empty{display:none}.seat-instruction .board-instruction{animation:tag-in var(--base) var(--ease-out);font-size:12px;line-height:1.25}@media (width<=389px){.seat.is-bar:has(>.seat-instruction:not(:empty):not(.is-held)) :is(.seat-tag,.seat-role){display:none}}.layout-stack .actions{margin-top:calc(var(--sp-2) * -1)}.sheet-toggle{width:100%;height:44px;color:var(--text);border:0;border-top:1px solid var(--line);cursor:pointer;background:0 0;justify-content:space-between;align-items:center;padding:0;font-size:14px;font-weight:650;display:flex}.sheet-toggle svg{width:18px;height:18px;transition:transform var(--base) var(--ease-out)}.sheet-toggle[aria-expanded=true] svg{transform:rotate(180deg)}.stack-sheet-body{gap:var(--sp-2);flex-direction:column;height:300px;display:flex}.stack-sheet-body[hidden]{display:none}.stack-sheet-body.is-setup{height:auto}.stack-sheet-body.is-setup .setup-panel{contain:none;flex:none;padding-top:0;overflow:visible}.stack-sheet-body .move-list,.stack-sheet-body .setup-panel{flex:1 1 0}@media (width<=899px),(pointer:coarse){.play-layout{--actions-h:44px}.quiet-button,.primary-button,.danger-button,.replay-button{height:44px}.move-text{min-height:28px}}.controls-slot .quiet-button,.controls-slot .primary-button{height:auto;min-height:var(--actions-h);white-space:normal;padding-block:6px;line-height:1.3}.controls-slot .quiet-button{color:var(--accent);text-align:left;justify-content:flex-start}.controls-slot .quiet-button:hover:not(:disabled),.controls-slot .quiet-button:active:not(:disabled){color:var(--accent-hover)}.wallgo-controls>.quiet-button{margin-left:calc(var(--sp-2) * -1)}@media (width<=899px),(pointer:coarse){.segmented-option:after,.quoridor-controls .text-button:after{content:"";position:absolute;inset:-8px -6px}.quoridor-controls .text-button{position:relative}.copy-link:after{inset:-15px -8px}}
