@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fraunces-vietnamese-600-normal-BjlAJixd.woff2) format("woff2"),url(/assets/fraunces-vietnamese-600-normal-DlAl5EAR.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fraunces-latin-ext-600-normal-BtzmzP0X.woff2) format("woff2"),url(/assets/fraunces-latin-ext-600-normal-B0Dy4lqi.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Fraunces;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fraunces-latin-600-normal-BFCDtZfi.woff2) format("woff2"),url(/assets/fraunces-latin-600-normal-DL5QCzvS.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #f4f1ec;--surface: #ffffff;--surface-2: #f0ece6;--border: #ded7cc;--text: #221e1a;--text-muted: #6d655c;--accent: #7a5230;--accent-contrast: #ffffff;--accent-soft: #efe2d3;--danger: #b3261e;--win: #2e7d32;--loss: #b3261e;--win-soft: #e3f1e4;--danger-soft: #fbe6e4;--mark: #f6dfb0;--board-light: #f0d9b5;--board-dark: #b58863;--board-notation-on-light: #8a6240;--board-notation-on-dark: #fbefdc;--board-last-move: rgb(205 210 106 / .75);--board-selected: rgb(20 85 30 / .5);--board-hint: rgb(20 30 20 / .28);--board-hint-ring: rgb(30 120 220 / .85);--board-shaft: rgb(47 111 208 / .8);--board-piece-glow: rgb(255 190 40 / .95);--board-goal: rgb(214 150 0 / .9);--board-wrong: rgb(220 60 50 / .55);--board-exposed: rgb(232 150 20 / .95);--board-attacker: rgb(200 40 30 / .9);--board-defender: rgb(31 122 58 / .85);--board-blast: rgb(214 58 36 / .8);--board-blast-core: #fff6d6;--board-blast-fire: #ffb347;--board-blast-smoke: rgb(70 60 50 / .45);--board-frost-ink: #1f5f9e;--board-frost-badge: #eaf5ff;--board-reach: rgb(96 160 220 / .22);--board-turn-earlier: rgb(205 210 106 / .42);--board-turn-own: rgb(122 82 48 / .22);--board-turn-badge: #2b2622;--board-turn-badge-ink: #f6efe6;--board-turn-own-badge: #7a5230;--board-debt-badge: #3b2412;--board-debt-ink: #fff3dd;--board-fog-light: #cfcac4;--board-fog-dark: #a29c95;--board-best-move: #1f7a3a;--board-badge-best: #1f7a3a;--board-badge-good: #6f8a5c;--board-badge-inaccuracy: #f0bf2e;--board-badge-mistake: #e8751a;--board-badge-blunder: #c62828;--eval-white: #fbf8f4;--eval-black: #4a423a;--inaccuracy: #8a6a00;--mistake: #c25a00;--radius-sm: 6px;--radius: 10px;--radius-lg: 15px;--shadow: 0 1px 2px rgb(0 0 0 / .06), 0 4px 16px rgb(0 0 0 / .06);--font-ui: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-display: "Fraunces", Georgia, "Times New Roman", serif;color-scheme:light;font-family:var(--font-ui);line-height:1.45;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}:root[data-theme=dark]{--bg: #161412;--surface: #211e1b;--surface-2: #2a2622;--border: #3a342e;--text: #ede7df;--text-muted: #a89f94;--accent: #d9a877;--accent-contrast: #1b1714;--accent-soft: #3b2f24;--mark: #5a4326;--danger: #f2b8b5;--win: #81c995;--loss: #f2b8b5;--win-soft: #1f3324;--danger-soft: #3d2322;--board-light: #cdb692;--board-dark: #98744f;--board-notation-on-light: #6f4e32;--board-notation-on-dark: #f3e4cb;--board-shaft: rgb(127 176 255 / .85);--board-piece-glow: rgb(255 205 90 / .95);--board-fog-light: #a8a39c;--board-fog-dark: #7d7871;--eval-white: #d9d1c6;--eval-black: #12100e;--inaccuracy: #e9c46a;--mistake: #f4a259;--shadow: 0 1px 2px rgb(0 0 0 / .4), 0 4px 16px rgb(0 0 0 / .3);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg)}button{font:inherit;color:inherit}a{color:var(--accent)}h1,h2{margin:0}.app{--board-size: clamp(360px, 100vh - 208px, 800px);--puzzle-board-size: clamp(360px, 100vh - 152px, 800px);--panel-width: 360px;--column-gap: 24px;--page-width: calc(var(--puzzle-board-size) + var(--column-gap) + var(--panel-width));--page-gutter: 16px;display:flex;flex-direction:column;min-height:100vh;max-width:calc(var(--page-width) + 2 * var(--page-gutter));margin:0 auto;padding:0 var(--page-gutter) 20px}.app-puzzles{--board-size: var(--puzzle-board-size)}.app-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0}.brand{display:flex;align-items:center;gap:10px}.brand-button{padding:4px 8px 4px 4px;margin-left:-4px;border:0;border-radius:var(--radius);background:transparent;color:inherit;text-decoration:none;cursor:pointer}.brand-button:hover{background:var(--surface-2)}.brand-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.brand-title{font-family:var(--font-display);font-size:1.3rem;font-weight:600;line-height:1.2;white-space:nowrap}.update-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;margin-bottom:16px;padding:8px 8px 8px 16px;border:1px solid var(--accent);border-radius:var(--radius-lg);background:var(--accent-soft);font-size:.9rem}.update-bar-actions{display:flex;gap:8px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.icon{flex:none;width:18px;height:18px}.button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:8px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font-weight:500;cursor:pointer;transition:background-color .12s,border-color .12s}.button:hover:not(:disabled){background:var(--surface-2)}.button:disabled{opacity:.45;cursor:not-allowed}.button:focus-visible,.board-frame:focus-visible,.variant-card:focus-visible,.option-chip:focus-visible,.promotion-option:focus-visible,.option-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.button-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast);font-weight:600}.button-primary:hover:not(:disabled){background:var(--accent);filter:brightness(1.08)}.button-danger,.button-danger:hover:not(:disabled){background:var(--danger);border-color:var(--danger);color:var(--surface)}.button-ghost{border-color:transparent;background:transparent}.button-quiet{border-color:transparent;background:transparent;color:var(--text-muted)}.button-quiet:hover:not(:disabled){color:var(--text)}.button-small{min-height:30px;padding:4px 10px;font-size:.85rem}.button-large{min-height:48px;padding:12px 28px;font-size:1.05rem}.button-block{width:100%}.button-back{min-height:34px;margin-left:-8px;padding:4px 10px 4px 6px;color:var(--text-muted);font-size:.9rem;font-weight:600}.button-back:hover:not(:disabled){color:var(--text)}.header-tools{display:flex;align-items:center;gap:8px}.icon-button{display:inline-grid;place-items:center;width:40px;height:40px;padding:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text-muted);cursor:pointer;transition:background-color .12s,color .12s}.icon-button:hover{background:var(--surface-2);color:var(--text)}.icon-button-small{width:34px;height:34px}.icon-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.setup{display:flex;flex-direction:column;gap:28px;width:100%;padding-block:16px}.setup-title{font-family:var(--font-display);font-size:clamp(1.75rem,1.4rem + 1vw,2.25rem);font-weight:600;line-height:1.1;letter-spacing:-.01em;text-wrap:balance}.menu-card{display:flex;align-items:center;gap:14px;min-width:0;padding:12px 14px 12px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.resume-card{border-color:var(--accent);background:var(--accent-soft);box-shadow:none}.menu-card-thumb{flex:none;width:56px;height:56px;border-radius:var(--radius-sm);object-fit:cover}.menu-card-text{display:flex;flex:1;flex-direction:column;gap:2px;min-width:0}.menu-card-title,.menu-card-details{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-card-title{font-weight:600}.menu-card-details{color:var(--text-muted);font-size:.875rem}.menu-card-actions{display:flex;flex:none;align-items:center;gap:6px}.menu-card-dismiss{min-width:38px;padding-inline:8px}.menu-card-dismiss.button-danger,.menu-card-dismiss.button-danger:hover:not(:disabled){padding-inline:12px;border-color:var(--danger);background:var(--danger);color:var(--surface)}.setup-section{display:flex;flex-direction:column;gap:12px;width:100%}.setup-section-heading{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px}.setup-section-hint{color:var(--text-muted);font-size:.85rem}.setup-sections{display:flex;flex-direction:column;gap:inherit}.setup-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 20px}.activity-tabs{display:flex;gap:3px;padding:3px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2)}.activity-tab{display:inline-flex;flex:1;align-items:center;justify-content:center;min-height:36px;padding:4px 14px;border:0;border-radius:calc(var(--radius) - 3px);background:transparent;color:var(--text-muted);font-weight:600;font-size:.92rem;cursor:pointer}.activity-tab:hover{color:var(--text)}.activity-tab[aria-selected=true]{background:var(--surface);color:var(--text);box-shadow:0 1px 2px #00000014,inset 0 0 0 1px var(--border)}.activity-tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.menu-tabs .activity-tab{min-width:96px}.menu-view .activity-tab{gap:7px;min-width:132px}.menu-view .activity-tab[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:0 1px 2px #00000014,inset 0 0 0 1px var(--border)}.menu-view .icon{flex:none;width:17px;height:17px}@media(min-width:861px){.setup{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:end;column-gap:16px}.setup>*{grid-column:1 / -1}.setup-head{display:contents}.setup-title{grid-row:1;grid-column:1}.search-bar{grid-row:1;grid-column:2}.search-field{width:clamp(240px,26vw,340px)}.menu-view{grid-row:1;grid-column:3}.search-sentinel{display:none}.search-suggestions{position:absolute;top:calc(100% + 6px);left:0;z-index:10;width:380px;padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:0 10px 30px #0000002e}.search-suggestions-label{flex-basis:100%;margin-bottom:2px}}html:has(.search-input:not(:placeholder-shown),.filter-bar,.filter-panel){overflow-y:scroll}.search-bar{position:relative;display:flex;flex-direction:column;gap:10px;min-width:0}.search-field{position:relative;display:flex;align-items:center}.search-field>.icon{position:absolute;left:13px;width:18px;height:18px;color:var(--text-muted);pointer-events:none}.search-input{width:100%;min-height:44px;padding:0 44px 0 40px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit;appearance:none}.search-input::placeholder{color:var(--text-muted);opacity:1}.search-input::-webkit-search-cancel-button,.search-input::-webkit-search-decoration{display:none}.search-input:hover{border-color:var(--accent)}.search-input:focus-visible,.search-clear:focus-visible,.search-suggestion:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.search-clear{position:absolute;right:6px;display:grid;place-items:center;width:32px;height:32px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--text-muted);cursor:pointer}.search-clear:hover{background:var(--surface-2);color:var(--text)}.search-clear .icon{width:16px;height:16px}.search-key{position:absolute;right:10px;display:grid;place-items:center;min-width:24px;height:24px;padding:0 6px;border:1px solid var(--border);border-bottom-width:2px;border-radius:5px;background:var(--surface-2);color:var(--text-muted);font:600 .75rem / 1 var(--font-ui);pointer-events:none}.search-suggestions{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.search-suggestions-label{margin-right:2px;color:var(--text-muted);font-size:.85rem}.search-suggestion{min-height:32px;padding:4px 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface);font-size:.85rem;font-weight:600;cursor:pointer}.search-suggestion:hover{border-color:var(--accent)}.search-title{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px}.search-pill{padding:0 8px;border:1px solid var(--border);border-radius:999px;color:var(--text-muted);font-size:.75rem;font-weight:600;line-height:20px;white-space:nowrap}.search-pill-activity{border-color:transparent;background:var(--accent-soft);color:var(--text)}.search-reason{font-size:.8rem}.search-reason b{color:var(--text);font-weight:600}.search-result mark{padding:0 1px;border-radius:3px;background:var(--mark);color:inherit}.search-bar:has(.search-action){display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:8px}.search-bar:has(.search-action) .search-suggestions{grid-column:1 / -1}.search-action{display:flex}.filter-button{min-height:44px;padding-inline:14px}.filter-button.is-active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.filter-count{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--accent);color:var(--accent-contrast);font-size:.75rem;font-weight:700;font-variant-numeric:tabular-nums}.filter-panel{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow)}.filter-panel:focus{outline:none}.filter-panel-head{display:none}.filter-panel-title{font-size:1.1rem}.filter-panel-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:20px 32px;padding:18px 20px}.filter-group{display:flex;flex-direction:column;gap:16px;min-width:0}.filter-field{display:flex;flex-direction:column;gap:8px}.filter-options{display:flex;flex-wrap:wrap;gap:6px}.filter-option{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:6px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font-weight:600;font-size:.88rem;cursor:pointer;transition:border-color .12s,background-color .12s}.filter-option:hover{border-color:var(--accent)}.filter-option[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.filter-option.is-empty:not([aria-pressed=true]){color:var(--text-muted);opacity:.6}.filter-option-count{min-width:20px;padding:1px 6px;border-radius:999px;background:var(--surface-2);color:var(--text-muted);font-size:.75rem;font-weight:600;font-variant-numeric:tabular-nums;text-align:center}.filter-option[aria-pressed=true] .filter-option-count{background:var(--surface)}.filter-option:focus-visible,.filter-pill:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.filter-panel-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;border-top:1px solid var(--border)}.filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}.filter-pills{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}.filter-pill{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 10px 0 12px;border:1px solid var(--accent);border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:.85rem;font-weight:600;white-space:nowrap;cursor:pointer}.filter-pill .icon{width:14px;height:14px}.filter-shown{display:inline-flex;align-items:baseline;gap:10px;color:var(--text-muted);font-size:.9rem;font-variant-numeric:tabular-nums;white-space:nowrap}.setup-section-count{color:var(--text-muted);font-size:.8rem;font-variant-numeric:tabular-nums;white-space:nowrap}@media(max-width:860px){.filter-layer{position:fixed;inset:0;z-index:100;display:grid;place-items:end stretch;background:#00000080}.filter-panel{max-height:92dvh;border-bottom:0;border-radius:var(--radius-lg) var(--radius-lg) 0 0}.filter-panel-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 4px}.filter-panel-body{grid-template-columns:minmax(0,1fr);gap:20px;padding:8px 16px 16px;overflow-y:auto}.filter-option{min-height:42px}.filter-panel-foot{padding:12px 16px calc(12px + env(safe-area-inset-bottom))}.filter-panel-foot .button-primary{flex:1}.filter-pills{flex-wrap:nowrap;width:calc(100% + 2 * var(--page-gutter));margin:-2px calc(-1 * var(--page-gutter));padding:2px var(--page-gutter);overflow-x:auto;scrollbar-width:none}.filter-pill{flex:none}}.setup:has(.search-input:focus) .search-result.is-active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent),var(--shadow)}.search-empty{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:20px;border:1px dashed var(--border);border-radius:var(--radius);color:var(--text-muted)}.search-empty p{margin:0}.search-empty-title{color:var(--text);font-weight:600}@media(max-width:860px){.search-bar{position:sticky;top:0;z-index:5;margin:-8px calc(-1 * var(--page-gutter));padding:8px var(--page-gutter);background:var(--bg)}.search-bar.is-stuck{box-shadow:0 8px 12px -10px #00000040}.search-sentinel{height:0;margin-bottom:-22px}.search-key{display:none}.search-suggestions{flex-wrap:nowrap;margin:-2px calc(-1 * var(--page-gutter));padding:2px var(--page-gutter);overflow-x:auto;scrollbar-width:none}.search-suggestion,.search-suggestions-label{flex:none;white-space:nowrap}}.recent{display:flex;flex-direction:column;gap:8px;min-width:0}.recent-row{display:flex;gap:8px;margin:-2px;padding:2px;overflow-x:auto;list-style:none;scrollbar-width:none}.recent-chip{display:inline-flex;flex:none;align-items:center;gap:6px;padding:4px 14px 4px 4px;border:1px solid var(--border);border-radius:999px;background:var(--surface);font-weight:600;font-size:.9rem;white-space:nowrap;cursor:pointer;transition:border-color .12s}.recent-chip:hover{border-color:var(--accent)}.recent-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.recent-chip img{width:32px;height:32px;margin-right:2px;border-radius:50%;object-fit:cover}.recent-chip-activity{color:var(--text-muted);font-weight:500}.variant-note{margin-top:4px;color:var(--text-muted);font-size:.78rem}.variant-note.variant-match{color:var(--accent);font-weight:600}.field-note{margin:0;color:var(--text-muted);font-size:.85rem}.eyebrow{font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.field-label{font-size:.9rem;font-weight:600}.variant-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.variant-card{display:flex;flex-direction:column;padding:0;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);text-align:left;cursor:pointer;transition:border-color .12s}.variant-card:hover{border-color:var(--accent)}.variant-cover{display:block;width:100%;aspect-ratio:2 / 1;object-fit:cover;border-bottom:1px solid var(--border)}.variant-text{display:flex;flex-direction:column;gap:2px;padding:10px 14px 12px}.variant-chevron{display:none}.menu-tile{position:relative;display:flex;min-width:0}.menu-tile>.variant-card{flex:1;min-width:0}.tile-star{position:absolute;top:8px;right:8px;z-index:1;display:grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid var(--border);border-radius:50%;background:var(--surface);color:var(--text);cursor:pointer;opacity:0;transition:opacity .12s}.tile-star .icon{width:18px;height:18px}.menu-tile:hover .tile-star,.tile-star:focus-visible,.tile-star[aria-pressed=true],.is-customizing .tile-star{opacity:1}.tile-star[aria-pressed=true]{color:var(--accent)}.tile-star:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(hover:none){.tile-star{opacity:1}}.tile-favorite-mark{display:none;margin-left:6px;color:var(--accent);vertical-align:-2px}.tile-favorite-mark .icon{width:14px;height:14px}.setup-section-heading:has(.setup-section-action,.section-order){flex-wrap:nowrap;align-items:center}.setup-section-heading:has(.setup-section-action,.section-order) .eyebrow{flex:none}.setup-section-heading:has(.setup-section-action,.section-order) .setup-section-hint{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.setup-section-action,.section-order{flex:none;margin-left:auto}.button.setup-section-action{min-height:32px;margin-block:-6px}.section-order{display:inline-flex;align-items:center;gap:8px;margin-block:-4px;color:var(--text-muted);font-size:.85rem}.section-order .select-compact{flex:none;width:auto;min-height:32px;font-size:.85rem}.customize-bar{position:sticky;top:0;z-index:6;display:flex;align-items:center;gap:12px 16px;padding:10px 14px;border:1px solid var(--accent);border-radius:var(--radius);background:var(--accent-soft);box-shadow:0 8px 14px -10px #00000059}.customize-bar-text{display:flex;flex:1;flex-direction:column;gap:1px;min-width:0}.customize-bar-text strong{font-weight:600}.customize-bar-text span{color:var(--text-muted);font-size:.875rem}.favorites-none{margin:0;padding:16px;border:1px dashed var(--border);border-radius:var(--radius);color:var(--text-muted);font-size:.9rem;text-align:center}.is-customizing .variant-card{cursor:grab;user-select:none}.is-customizing .menu-tile:hover>.variant-card{border-color:var(--accent)}.tile-tools{position:absolute;top:8px;left:8px;z-index:1;display:flex;align-items:center;gap:2px;padding:2px;border-radius:999px;background:#0000008c;color:#fff}.tile-tool{display:grid;place-items:center;width:30px;height:30px;padding:0;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer}.tile-tool .icon{width:18px;height:18px}.tile-handle{cursor:grab;touch-action:none}.tile-move:hover:not(:disabled){background:#ffffff2e}.tile-move:disabled{opacity:.35;cursor:default}.tile-move:focus-visible{outline:2px solid #fff;outline-offset:0}.menu-tile.is-placeholder>.variant-card{border-style:dashed;border-color:var(--accent);box-shadow:none;opacity:.35}.menu-tile.is-placeholder>:not(.variant-card){visibility:hidden}.drag-ghost{position:fixed;z-index:40;pointer-events:none}.drag-ghost>.variant-card{border-color:var(--accent);box-shadow:0 16px 36px #0000004d;transform:rotate(1.2deg) scale(1.02);cursor:grabbing}.drag-ghost .tile-star{opacity:1}.menu-notice{position:fixed;bottom:24px;left:50%;z-index:30;padding:6px 14px;border-radius:999px;background:var(--text);color:var(--bg);font-size:.875rem;font-weight:600;transform:translate(-50%);box-shadow:var(--shadow)}.menu-notice:empty{display:none}.choice-title{font-size:1rem;font-weight:600}.choice-subtitle{font-size:.85rem;color:var(--text-muted)}.setup-dialog{display:flex;flex-direction:column;width:100%;max-width:560px;max-height:calc(100dvh - 32px);overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow)}.setup-dialog-cover{position:relative;flex:none}.setup-dialog-cover img{display:block;width:100%;aspect-ratio:2.6 / 1;object-fit:cover}.setup-dialog-close{position:absolute;top:10px;right:10px;display:grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid var(--border);border-radius:50%;background:var(--surface);color:var(--text);cursor:pointer}.setup-dialog-close .icon{width:18px;height:18px}.setup-dialog-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.setup-dialog-close.setup-dialog-share{right:54px}.setup-dialog-close.setup-dialog-star{right:98px}.setup-dialog-star[aria-pressed=true]{color:var(--accent)}.setup-dialog-share .icon{width:17px;height:17px}.setup-dialog-copied{position:absolute;top:54px;right:10px;padding:4px 10px;border-radius:999px;background:var(--text);color:var(--bg);font-size:.8rem;font-weight:600}.setup-dialog-copied:empty{display:none}.setup-dialog-body{display:flex;flex-direction:column;gap:18px;min-height:0;padding:18px 22px 20px;overflow-y:auto}.setup-dialog-heading{display:flex;flex-direction:column;gap:4px}.setup-dialog-title{font-family:var(--font-display);font-size:1.6rem;font-weight:600;line-height:1.15}.setup-dialog-description{margin:0;color:var(--text-muted)}.setup-dialog-body .panel-note{font-size:.9rem}.setup-variant{display:flex;flex-direction:column;gap:10px}.variant-picker{display:flex;flex-direction:column;gap:8px;min-width:0}.variant-main,.variant-option{position:relative;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);text-align:left;cursor:pointer;transition:border-color .12s,background-color .12s}.variant-main:hover,.variant-option:hover{border-color:var(--text-muted)}.variant-main[aria-pressed=true],.variant-option[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.variant-main{display:flex;align-items:center;gap:12px;width:100%;padding:8px 12px 8px 8px}.variant-main-thumb{flex:none;width:46px;height:46px;border-radius:var(--radius-sm);object-fit:cover}.variant-main-text{display:flex;flex-direction:column;min-width:0}.variant-main-tag,.variant-strip-label{color:var(--text-muted);font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.variant-main-tag{flex:none;margin-left:auto}.variant-strip-label{margin-top:2px}.variant-strip{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 6px;margin:-2px -2px 0;scroll-snap-type:x proximity;scroll-padding-inline:2px;scrollbar-width:thin}.variant-option{display:flex;flex:0 0 148px;flex-direction:column;gap:1px;padding:0 0 8px;overflow:hidden;scroll-snap-align:start}.variant-option-image{display:block;width:100%;height:62px;margin-bottom:5px;object-fit:cover}.variant-option-relation{padding:0 9px;color:var(--accent);font-size:.64rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.variant-option-name{font-weight:600;font-size:.92rem;line-height:1.2}.variant-option .variant-option-name,.variant-option .variant-option-detail{padding:0 9px}.variant-option-detail{color:var(--text-muted);font-size:.78rem;line-height:1.25}.variant-last-played{padding:2px 9px 0;color:var(--accent);font-size:.7rem;font-weight:700}.variant-option-star{position:absolute;top:5px;right:5px;display:flex;padding:3px;border-radius:999px;background:var(--surface);color:var(--accent)}.variant-main .variant-option-star{top:4px;right:4px;padding:0;background:none}.variant-option-star .icon{width:12px;height:12px}@media(max-width:520px){.variant-option{flex-basis:132px}}.variant-info-origin{display:block;color:var(--accent);font-size:.8rem;font-weight:600}.activity-tab.activity-tab-muted{opacity:.55}.activity-tab.activity-tab-muted[aria-selected=true]{opacity:.8}.missing-activity{display:flex;flex-direction:column;gap:10px;padding:16px;border:1px dashed var(--border);border-radius:var(--radius);color:var(--text-muted);text-align:center}.missing-activity p{margin:0}.missing-activity .option-chips{justify-content:center}.missing-activity .option-chip{flex:0 0 auto}.more-options{border:1px solid var(--border);border-radius:var(--radius)}.more-options-head{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:8px 12px;border:0;border-radius:var(--radius);background:transparent;color:var(--text);text-align:left;cursor:pointer}.more-options-head:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.more-options-title{flex:none;font-size:.9rem;font-weight:600}.more-options-summary{flex:1;min-width:0;overflow:hidden;color:var(--text-muted);font-size:.82rem;white-space:nowrap;text-overflow:ellipsis}.more-options-head .icon{flex:none;width:16px;height:16px;color:var(--text-muted);transition:transform .12s}.more-options-open .more-options-head .icon{transform:rotate(90deg)}.more-options-body{padding:4px 12px 12px}.seat-switch{align-self:flex-start;margin-top:4px;padding-inline:0;color:var(--accent)}.seat-switch-row{margin:-6px 0 0}@media(prefers-reduced-motion:reduce){.more-options-head .icon{transition:none}}.setup-dialog-panel{display:flex;flex-direction:column;gap:inherit}.panel-note-title{display:block;color:var(--text)}.course-progress{gap:6px}.course-progress-text{color:var(--text-muted);font-size:.85rem}.course-progress-bar{display:block;height:8px;overflow:hidden;border-radius:999px;background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--border)}.course-progress-bar>span{display:block;height:100%;border-radius:inherit;background:var(--accent)}.course-reset,.learn-reset{align-self:flex-start;margin-top:4px}.setup-dialog-footer{flex:none;padding:14px 22px 20px;border-top:1px solid var(--border)}.setup-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}.field-wide{grid-column:1 / -1}.option-chips{display:flex;flex-wrap:wrap;gap:6px}.option-chip{display:inline-flex;flex:1 1 0;align-items:center;justify-content:center;gap:8px;min-width:76px;min-height:42px;padding:6px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font-weight:600;font-size:.92rem;cursor:pointer;transition:border-color .12s,background-color .12s}.option-chip:hover{border-color:var(--accent)}.option-chip[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.arrangement-chips{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.arrangement-chip{flex-direction:column;gap:4px;padding:8px;font-size:.85rem;text-align:center}.arrangement-pieces{display:flex;align-items:center;gap:1px}.arrangement-pieces>span{display:block;width:26px;height:26px}.arrangement-pieces>.arrangement-gap{width:14px}.color-dot{flex:none;width:14px;height:14px;border-radius:50%;box-shadow:0 0 0 1px var(--border)}.install-offer{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;width:100%;margin:0;padding:12px 12px 12px 16px;border:1px solid var(--border);border-radius:var(--radius-lg)}.install-offer-icon{flex:none;width:40px;height:40px}.install-offer-text{display:flex;flex:1 1 240px;flex-direction:column;gap:2px;min-width:0}.install-offer-title{margin:0;font-size:.95rem;font-weight:600}.install-offer-detail{margin:0;color:var(--text-muted);font-size:.88rem}.install-offer-actions{display:flex;gap:8px;margin-left:auto}.install-offer-done{gap:10px;color:var(--win);font-size:.92rem;font-weight:500}.modal-install{max-width:480px}.install-steps{display:flex;flex-direction:column;gap:12px;margin:4px 0;padding:0;list-style:none;counter-reset:install-step;font-size:.95rem;line-height:1.6}.install-steps strong{font-weight:600}.install-steps li{position:relative;padding-left:36px;counter-increment:install-step}.install-steps li:before{content:counter(install-step);position:absolute;top:calc((1.52rem - 24px)/2);left:0;display:grid;place-items:center;width:24px;height:24px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:.8rem;font-weight:700}.install-glyph{display:inline-grid;place-items:center;width:22px;height:22px;margin:-4px 1px;border:1px solid var(--border);border-radius:6px;background:var(--surface-2);color:var(--accent);vertical-align:-6px}.install-glyph .icon{width:15px;height:15px}.field{display:flex;flex-direction:column;gap:8px}.select{appearance:none;width:100%;min-height:44px;padding:8px 40px 8px 12px;border:1px solid var(--border);border-radius:var(--radius);background-color:var(--surface);background-image:linear-gradient(45deg,transparent 50%,var(--text-muted) 50%),linear-gradient(135deg,var(--text-muted) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 15px) 50%;background-size:5px 5px;background-repeat:no-repeat;color:var(--text);font:inherit;cursor:pointer}.select-compact{flex:1;min-width:0;min-height:36px;padding:4px 32px 4px 10px;font-size:.92rem;font-weight:600}.inline-select{position:relative;display:inline-flex;align-items:center;gap:4px;min-width:0;min-height:32px;margin-left:-8px;padding:2px 6px 2px 8px;border:1px solid transparent;border-radius:var(--radius);font-weight:600;transition:background-color .12s,border-color .12s}.inline-select .icon{width:16px;height:16px;color:var(--text-muted)}.inline-select:hover:not(.disabled){border-color:var(--border);background:var(--surface-2)}.inline-select:hover:not(.disabled) .icon{color:var(--text)}.inline-select:has(:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.inline-select-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inline-select-control{position:absolute;inset:0;width:100%;opacity:0;font:inherit;cursor:pointer}.inline-select.disabled .inline-select-control{cursor:default}.select:disabled{opacity:.6;cursor:not-allowed}.select:hover:not(:disabled){border-color:var(--accent)}.select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.game{display:grid;grid-template-columns:minmax(0,var(--board-size)) minmax(var(--panel-width),1fr);justify-content:center;align-items:stretch;gap:var(--column-gap)}.game-yalta{grid-template-columns:minmax(0,var(--puzzle-board-size)) minmax(var(--panel-width),1fr)}.board-column{display:flex;flex-direction:column;gap:8px;min-width:0}.game-board{position:relative;width:100%;min-width:0}.hand-over{position:absolute;inset:0;z-index:5;display:grid;place-items:center;padding:16px}.hand-over-card{display:flex;flex-direction:column;align-items:center;gap:10px;max-width:320px;padding:20px 24px;border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow);text-align:center}.hand-over-title{margin:0;font-family:var(--font-display);font-size:1.4rem;font-weight:600}.hand-over-text{margin:0 0 4px;color:var(--text-muted)}.board-frame{position:relative;container-type:inline-size;border-radius:var(--radius-sm);overflow:hidden;box-shadow:var(--shadow);touch-action:pan-y}.board-shatranj{--board-light: #ecdcb6;--board-dark: #a0703f;--board-notation-on-light: #7a5230;--board-notation-on-dark: #f6e8cc;box-shadow:0 0 0 4px #5a3a22,var(--shadow)}:where([data-theme=dark]) .board-shatranj{--board-light: #c9b791;--board-dark: #855c33;--board-notation-on-light: #5f3f24;--board-notation-on-dark: #efdfc2;box-shadow:0 0 0 4px #3f2816,var(--shadow)}.board-grandeacedrex{--board-light: #f3e8d6;--board-dark: #b5503f;--board-notation-on-light: #8a3a2c;--board-notation-on-dark: #f8ece0;box-shadow:0 0 0 4px #5e2b22,var(--shadow)}:where([data-theme=dark]) .board-grandeacedrex{--board-light: #d3c4aa;--board-dark: #923f31;--board-notation-on-light: #6e2e23;--board-notation-on-dark: #f0e2d2;box-shadow:0 0 0 4px #3e1b15,var(--shadow)}.move-call{margin-left:4px;padding:0 5px;border-radius:6px;font-size:.72em;line-height:1.4;vertical-align:1px;background:var(--surface-2);color:var(--text-muted)}.move-call-shak{background:#d9483b;color:#fff}.board-shatar{--board-light: #e8d8b8;--board-dark: #e8d8b8;--board-grid: #8a6a44;--board-notation-on-light: #5a4026;--board-notation-on-dark: #5a4026;box-shadow:0 0 0 4px #5a4026,var(--shadow)}:where([data-theme=dark]) .board-shatar{--board-light: #c9b892;--board-dark: #c9b892;--board-grid: #5e4426;--board-notation-on-light: #3b2914;--board-notation-on-dark: #3b2914;box-shadow:0 0 0 4px #3b2914,var(--shadow)}.board-senterej{--board-light: #c4604f;--board-dark: #c4604f;--board-grid: #2a1712;--board-notation-on-light: #fbe9e2;--board-notation-on-dark: #fbe9e2;box-shadow:0 0 0 4px #4a1f17,var(--shadow)}:where([data-theme=dark]) .board-senterej{--board-light: #a44d40;--board-dark: #a44d40;--board-grid: #1c0e0a;--board-notation-on-light: #f3ddd4;--board-notation-on-dark: #f3ddd4;box-shadow:0 0 0 4px #33140f,var(--shadow)}.board-makruk{--board-light: #d39f62;--board-dark: #d39f62;--board-wood: #d39f62;--board-grid: #6e4220;--board-notation-on-light: #5c3716;--board-notation-on-dark: #5c3716;box-shadow:0 0 0 4px #5b3517,var(--shadow)}:where([data-theme=dark]) .board-makruk{--board-light: #b8864f;--board-dark: #b8864f;--board-wood: #b8864f;--board-grid: #4e2e12;--board-notation-on-light: #3f240c;--board-notation-on-dark: #3f240c;box-shadow:0 0 0 4px #3d230c,var(--shadow)}.board-chaturanga{--board-light: #e8cf9c;--board-dark: #e8cf9c;--board-wood: #e8cf9c;--board-grid: #7a3a1d;--board-notation-on-light: #6a3219;--board-notation-on-dark: #6a3219;box-shadow:0 0 0 4px #6a2c14,var(--shadow)}:where([data-theme=dark]) .board-chaturanga{--board-light: #c6aa76;--board-dark: #c6aa76;--board-wood: #c6aa76;--board-grid: #55260f;--board-notation-on-light: #46200c;--board-notation-on-dark: #46200c;box-shadow:0 0 0 4px #461c0b,var(--shadow)}.board-chaturanga.board-diagonals,.board-makruk.board-diagonals{--board-light: transparent;--board-dark: transparent;background:var(--board-wood)}.board-diagonals-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.board-diagonals-lines line{stroke:var(--board-grid);stroke-width:1.5px;vector-effect:non-scaling-stroke}.board-marks-lines line{stroke-width:1px;opacity:.4}.board-frame.board-diagonals>:not(.board-diagonals-lines,.promotion-backdrop,.sr-only),.rule-window.board-diagonals .rule-cell{position:relative;z-index:1}.promote-here{position:absolute;top:2%;right:2%;z-index:2;width:50%;height:50%;padding:4%;border-radius:50%;background:var(--board-hint);pointer-events:none}.promote-here svg{width:100%;height:100%;opacity:.9}.board-xiangqi{--board-light: transparent;--board-dark: transparent;--board-line: #5b3a1e;--board-palace: rgb(150 90 40 / .14);--board-notation-on-light: #6b4524;--board-notation-on-dark: #6b4524;background:#e9c98f;box-shadow:0 0 0 4px #6b4524,var(--shadow)}:where([data-theme=dark]) .board-xiangqi{--board-line: #3e2610;--board-palace: rgb(90 50 20 / .16);--board-notation-on-light: #3e2610;--board-notation-on-dark: #3e2610;background:#c9a771;box-shadow:0 0 0 4px #4a2f16,var(--shadow)}.xiangqi-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.board-xiangqi>:not(.xiangqi-lines,.wxf-files){position:relative;z-index:1}.xiangqi-palace{fill:var(--board-palace)}.board-janggi{--board-palace: rgb(150 90 40 / .12);background:#efd7a4}:where([data-theme=dark]) .board-janggi{background:#cfb07c}.board-shogi{--board-light: #e7bf74;--board-dark: #e7bf74;--board-grid: #5e3c18;--board-notation-on-light: #5e3c18;--board-notation-on-dark: #5e3c18;box-shadow:0 0 0 4px #7a4e22,var(--shadow)}:where([data-theme=dark]) .board-shogi{--board-light: #cfa45e;--board-dark: #cfa45e;--board-grid: #46290d;--board-notation-on-light: #46290d;--board-notation-on-dark: #46290d;box-shadow:0 0 0 4px #573513,var(--shadow)}.shogi-marks{position:absolute;inset:0;z-index:2;pointer-events:none}.shogi-star{position:absolute;width:clamp(4px,1.1cqi,7px);height:clamp(4px,1.1cqi,7px);border-radius:50%;background:var(--board-grid);transform:translate(-50%,-50%)}.shogi-coord{position:absolute;font-size:clamp(9px,1.7cqi,13px);font-weight:700;line-height:1;color:var(--board-notation-on-light);user-select:none}.shogi-coord-file{top:2px;transform:translate(calc(-100% - 3px))}.shogi-coord-rank{right:3px;transform:translateY(calc(-100% - 2px))}.wxf-files{position:absolute;inset:0;z-index:2;pointer-events:none}.wxf-file{position:absolute;font-size:clamp(10px,1.8cqi,14px);font-weight:700;line-height:1;color:var(--board-notation-on-light);user-select:none;transform:translate(calc(-100% - 3px))}.wxf-file-bottom{bottom:2px}.wxf-file-top{top:2px}.move-figurine{display:inline-block;width:1.25em;height:1.25em;margin-right:1px;vertical-align:-.28em}.move-figurine>svg{display:block;width:100%;height:100%}.xiangqi-line,.xiangqi-mark{fill:none;stroke:var(--board-line);stroke-width:1.4px;vector-effect:non-scaling-stroke}.xiangqi-mark{stroke-width:1.1px}.xq-symbol{transform:translateY(2.6px)}.xq-mini-char{display:none}@container (min-width: 460px){.xq-symbol{transform:none}.xq-mini-char{display:inline}}.game-eight{--board-size: clamp(360px, 100vh - 304px, 800px)}.game-tall{grid-template-columns:minmax(0,calc(var(--board-size) * .9)) minmax(var(--panel-width),1fr)}html:has(.game-fullscreen){overflow:hidden}.game.game-fullscreen{--board-aspect: 1;--fullscreen-pad: max(12px, env(safe-area-inset-top), env(safe-area-inset-bottom));--fullscreen-side: 300px;--board-size: min( 100vw - 2 * var(--page-gutter) - var(--fullscreen-side) - var(--column-gap), (100dvh - 2 * var(--fullscreen-pad)) * var(--board-aspect) );position:fixed;inset:0;z-index:50;display:flex;padding:var(--fullscreen-pad) var(--page-gutter);overflow:auto;background:var(--bg)}.game.game-fullscreen.game-yalta{--board-aspect: 1.138}.game.game-fullscreen.game-tall{--board-aspect: .9}@media(min-width:861px){.game-tall.game-narrow{grid-template-columns:minmax(0,calc(var(--board-size) * .5)) minmax(var(--panel-width),calc(var(--panel-width) * 1.5))}}@media(max-width:860px){.game-narrow:not(.game-fullscreen) .board-column{width:min(100%,calc((100dvh - 200px)/2));justify-self:center}}.game.game-fullscreen.game-tall.game-narrow{--board-aspect: .5}.game.game-fullscreen.game-eight{--fullscreen-side: 380px}.game-fullscreen>.game-panel{display:none}.game-fullscreen .board-column{display:grid;margin:auto;grid-template-columns:var(--board-size) var(--fullscreen-side);grid-template-rows:auto minmax(0,auto) 1fr repeat(4,auto);height:calc(var(--board-size) / var(--board-aspect));gap:8px var(--column-gap)}.game-fullscreen .board-column>*{grid-column:2}.game-fullscreen .board-column>.game-board{grid-column:1;grid-row:1 / -1}.game-fullscreen .board-column>:has(+.game-board):not(.fullscreen-exit){grid-row:2;align-content:start;overflow-y:auto}.game-fullscreen .board-column>.game-board+*{grid-row:4}.game-fullscreen .board-column>.game-board+*+*{grid-row:5}.game-fullscreen .board-column>.game-board+*+*+*{grid-row:6}.game-fullscreen .board-column>.game-board+*+*+*+*{grid-row:7}.game-fullscreen .board-column>.player-bars{grid-auto-flow:row}.game-fullscreen.game-eight .board-column>.player-bars{grid-template-columns:repeat(2,minmax(0,1fr))}.fullscreen-exit{grid-row:1;justify-self:end}@media(max-aspect-ratio:5 / 4){.game.game-fullscreen{--fullscreen-top: calc(64px + env(safe-area-inset-top)) ;--fullscreen-bars: 232px;--board-size: min( 100vw - 2 * var(--page-gutter), (100dvh - var(--fullscreen-bars) - var(--fullscreen-top) - var(--fullscreen-pad)) * var(--board-aspect) );padding-top:var(--fullscreen-top)}.game.game-fullscreen.game-four{--fullscreen-bars: 248px}.game.game-fullscreen.game-four.game-dice{--fullscreen-bars: calc(248px + var(--dice-tray-height) + 8px)}.game.game-fullscreen.game-eight{--fullscreen-bars: 344px}.game.game-fullscreen.learn,.game.game-fullscreen.game-puzzle{--fullscreen-bars: 168px}.game.game-fullscreen.game-puzzle.game-hands{--fullscreen-bars: 288px}.game-fullscreen .board-column{display:flex;flex-direction:column;align-items:center;height:auto}.game-fullscreen .board-column>:not(.fullscreen-exit){flex:none;width:var(--board-size);max-width:100%}.game-fullscreen .board-column>:has(+.game-board):not(.fullscreen-exit){overflow:visible}.game-fullscreen:not(.game-eight) .board-column>.player-bars{grid-auto-flow:column}.game-fullscreen.game-eight .board-column>.player-bars{grid-template-columns:repeat(4,minmax(0,1fr))}.fullscreen-exit{position:absolute;top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right))}}.yalta-board,.four-board,.round-board,.hex-board{overflow:visible;border-radius:0;box-shadow:none}.yalta-svg,.four-svg,.round-svg,.hex-svg{display:block;width:100%;height:auto;overflow:visible;filter:drop-shadow(0 1px 2px rgb(0 0 0 / .1)) drop-shadow(0 4px 12px rgb(0 0 0 / .08));user-select:none;-webkit-user-select:none;touch-action:pan-y}.yalta-outline{fill:var(--board-dark)}.yalta-field-light{fill:var(--board-light);stroke:var(--board-light);stroke-width:.25}.yalta-field-dark{fill:var(--board-dark);stroke:var(--board-dark);stroke-width:.25}.four-square-light{fill:var(--board-light);stroke:var(--board-light);stroke-width:.15}.four-square-dark{fill:var(--board-dark);stroke:var(--board-dark);stroke-width:.15}.yalta-overlays,.yalta-notation,.yalta-pieces,.yalta-dragged,.round-overlays,.round-notation,.round-pieces,.round-dragged,.round-rim,.round-hole,.hex-overlays,.hex-notation,.hex-pieces,.hex-dragged,.hex-arrows,.four-overlays,.four-notation,.four-pieces,.four-dragged{pointer-events:none}.yalta-last-move,.four-last-move,.round-last-move,.hex-last-move{fill:var(--board-last-move)}.yalta-selected,.four-selected,.round-selected,.hex-selected{fill:var(--board-selected)}.yalta-drop-target,.four-drop-target,.round-drop-target,.hex-drop-target{fill:none;stroke:var(--board-selected);stroke-width:1.6;stroke-linejoin:round}.yalta-board:focus-visible,.four-board:focus-visible,.round-board:focus-visible,.hex-board:focus-visible{outline:none}.yalta-threat,.four-threat,.round-threat,.hex-threat{fill:none;stroke:var(--danger);stroke-width:1.4;stroke-linejoin:round}.four-attacker{fill:none;stroke:var(--board-attacker);stroke-width:1.2;stroke-linejoin:round}.four-defender{fill:none;stroke:var(--board-defender);stroke-width:.9;stroke-dasharray:2 1.2;stroke-linejoin:round}.yalta-cursor,.four-cursor,.round-cursor,.hex-cursor{fill:none;stroke:var(--accent);stroke-width:1.2;stroke-linejoin:round}.yalta-move-dot,.four-move-dot,.round-move-dot,.hex-move-dot{fill:var(--board-hint)}.yalta-capture-ring,.four-capture-ring,.round-capture-ring,.hex-capture-ring{fill:none;stroke:var(--board-hint)}.yalta-notation text,.four-notation text,.round-notation text,.hex-notation text{font-family:var(--font-ui);font-weight:700;dominant-baseline:central}.yalta-notation text,.round-notation text,.hex-notation text{text-anchor:middle}.yalta-notation-on-light,.four-notation-on-light{fill:var(--board-notation-on-light)}.yalta-notation-on-dark,.four-notation-on-dark{fill:var(--board-notation-on-dark)}.four-lines{pointer-events:none}.four-line{stroke-width:.9;stroke-linecap:square;opacity:.75}.four-line-light{stroke:var(--board-light)}.four-line-dark{stroke:var(--board-dark)}.pawn-direction{stroke:#1f1b18;stroke-width:.35;stroke-linejoin:round}.pawn-direction-dark{stroke:#f4ede3}.four-svg-zoomed{overflow:hidden}.board-zoom{position:absolute;top:0;right:0;width:min(40px,11cqi);height:min(40px,11cqi)}.yalta-pawn-badge line{stroke-linecap:round}.yalta-pawn-badge-w circle{fill:#fbf8f3;stroke:#2b2520}.yalta-pawn-badge-w line{stroke:#2b2520}.yalta-pawn-badge-w polygon{fill:#2b2520}.yalta-pawn-badge-r circle{fill:#d9483b;stroke:#fff6f1}.yalta-pawn-badge-r line{stroke:#fff6f1}.yalta-pawn-badge-r polygon{fill:#fff6f1}.yalta-pawn-badge-b circle{fill:#2b2520;stroke:#f4ede3}.yalta-pawn-badge-b line{stroke:#f4ede3}.yalta-pawn-badge-b polygon{fill:#f4ede3}.round-board{--round-line: #5a3a22}:where([data-theme=dark]) .round-board{--round-line: #3f2816}.round-cell{stroke:var(--round-line);stroke-width:.35}.round-cell-light{fill:var(--board-light)}.round-cell-dark{fill:var(--board-dark)}.round-rim{fill:none;stroke:var(--round-line);stroke-width:1.4}.round-hole{fill:var(--bg);stroke:var(--round-line);stroke-width:1}.round-rank{fill:var(--text-muted)}.round-on-light{fill:var(--board-notation-on-light)}.round-on-dark{fill:var(--board-notation-on-dark)}.round-hint{fill:none;stroke:var(--board-hint-ring);stroke-width:1.3;stroke-linejoin:round}.round-wrong{fill:var(--board-wrong)}.round-arrows{pointer-events:none}.round-goal{fill:var(--board-goal);stroke:var(--board-goal)}.round-met{animation:round-met .9s ease-in forwards}@keyframes round-met{0%{opacity:.85}to{opacity:0}}@media(prefers-reduced-motion:reduce){.round-met{display:none}}.hex-board{--hex-light: var(--board-light);--hex-mid: color-mix(in srgb, var(--board-light) 48%, var(--board-dark));--hex-dark: var(--board-dark)}.hex-cell{stroke-width:.25}.hex-cell-light{fill:var(--hex-light);stroke:var(--hex-light)}.hex-cell-mid{fill:var(--hex-mid);stroke:var(--hex-mid)}.hex-cell-dark{fill:var(--hex-dark);stroke:var(--hex-dark)}.hex-notation text{fill:var(--text-muted)}.hex-hint{fill:none;stroke:var(--board-hint-ring);stroke-width:1.3;stroke-linejoin:round}.hex-wrong{fill:var(--board-wrong)}.hex-goal{fill:var(--board-goal);stroke:var(--board-goal)}.paco-svg{display:block;width:100%;height:auto;user-select:none;-webkit-user-select:none;touch-action:pan-y}.paco-light{fill:var(--board-light)}.paco-dark{fill:var(--board-dark)}.paco-layer,.paco-notation,.paco-hand{pointer-events:none}.paco-last-move{fill:var(--board-last-move)}.paco-selected{fill:var(--board-selected)}.paco-threat{fill:none;stroke:var(--danger);stroke-width:.07}.paco-cursor{fill:none;stroke:var(--accent);stroke-width:.06}.paco-move-dot{fill:var(--board-hint)}.paco-union-ring{fill:none;stroke:var(--board-hint)}.paco-notation text{font-family:var(--font-ui);font-size:.15px;font-weight:700;dominant-baseline:auto}.paco-on-light{fill:var(--board-notation-on-light)}.paco-on-dark{fill:var(--board-notation-on-dark)}.paco-turn-bar{position:absolute;top:calc(100% + 4px);left:50%;z-index:4;display:flex;align-items:center;gap:10px;width:max-content;max-width:calc(100% - 32px);padding:6px 8px 6px 14px;transform:translate(-50%);border:1px solid var(--accent);border-radius:var(--radius);background:var(--accent-soft);box-shadow:var(--shadow);color:var(--text);font-size:.9rem;font-weight:500}.paco-turn-bar .button{white-space:nowrap}.player-bars{display:grid;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:8px}.game-four .player-bars .player-bar{position:relative}.game-four:not(.game-eight) .player-bars .turn-badge{position:absolute;top:-9px;right:10px;padding:1px 8px;font-size:.72rem;box-shadow:0 0 0 2px var(--bg)}.game-four .player-bars .captured,.game-four .player-bars .captured-list{flex-wrap:nowrap;overflow:hidden}.game-eight .player-bars{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-flow:row}.game-eight .player-bars .player-bar{flex-wrap:wrap;align-content:flex-start;gap:4px 8px}.game-eight .player-bars .player-main{display:contents}.game-eight .player-bars .captured{flex:1;order:1;min-width:0}.game-eight .player-bars .player-name{flex-basis:100%;order:2;flex-wrap:wrap;gap:2px;font-size:.85rem}.game-eight .player-bars .avatar{width:30px;height:30px}.game-eight .player-bars .avatar .icon{width:18px;height:18px}.game-eight .player-bars .inline-select-value{white-space:normal;line-height:1.2}.game-eight .player-bars .turn-badge{display:none}.player-bar{display:flex;align-items:center;gap:10px;min-height:52px;padding:6px 10px 6px 6px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);transition:border-color .15s,box-shadow .15s}.player-bar.active{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}.pass-button,.auto-setup-button{flex:none}.auto-setup-button{margin-block:4px 2px}.avatar{display:grid;flex:none;place-items:center;width:38px;height:38px;border-radius:8px}.avatar .icon{width:22px;height:22px}.avatar-w,.avatar-whiteA,.avatar-whiteB{border:1px solid #cfc6ba;background:#fbf8f3;color:#2b2520}.avatar-b,.avatar-blackA,.avatar-blackB,.avatar-sente{border:1px solid #1f1b18;background:#2b2520;color:#f4ede3}.avatar-gote{border:1px solid #cfc6ba;background:#fbf8f3;color:#2b2520}.avatar-r{border:1px solid #a8352b;background:#d9483b;color:#fff6f1}.avatar-u{border:1px solid #2d62ab;background:#3f7fd6;color:#f3f7fd}.avatar-y{border:1px solid #b88d17;background:#e8b92f;color:#2b2520}.avatar-g{border:1px solid #2c7443;background:#3f9a5a;color:#f2f9f4}.avatar-p{border:1px solid #6a3ca3;background:#8a56c8;color:#f7f2fc}.avatar-o{border:1px solid #b45c0f;background:#e57a1c;color:#2b2520}.avatar-yellowRight{border:1px solid #b88d17;background:#e8b92f;color:#2b2520}.avatar-yellowLeft{border:1px solid #c9a63c;background:#f6df8c;color:#2b2520}.avatar-redRight{border:1px solid #a8352b;background:#d9483b;color:#fff6f1}.avatar-redLeft{border:1px solid #c86a5f;background:#f29b90;color:#2b2520}.avatar-whiteRight{border:1px solid #cfc6ba;background:#fbf8f3;color:#2b2520}.avatar-whiteLeft{border:1px solid #a3abb5;background:#d3d9e0;color:#2b2520}.avatar-blackRight{border:1px solid #1f1b18;background:#2b2520;color:#f4ede3}.avatar-blackLeft{border:1px solid #3c434c;background:#5d6672;color:#f4ede3}.player-bar.eliminated .avatar,.player-bar.eliminated .player-main{opacity:.5}.player-main{display:flex;flex:1;flex-wrap:wrap;align-items:center;gap:0 12px;min-width:0}.player-name{display:flex;min-width:0;max-width:100%}.player-label{font-weight:600}.player-tag{flex:none;align-self:center;margin-left:6px;padding:1px 6px;border-radius:999px;background:var(--surface-2);color:var(--text-muted);font-size:.75rem;font-weight:600}.turn-badge{flex:none;padding:3px 10px;border-radius:999px;background:var(--accent);color:var(--accent-contrast);font-size:.8rem;font-weight:700;white-space:nowrap}.turn-badge-check{background:var(--danger);color:var(--surface)}.turn-badge-out{border:1px solid var(--border);background:var(--surface-2);color:var(--text-muted)}.turn-badge .thinking:after{margin-left:6px}.captured,.captured-list{display:flex;flex-wrap:wrap;align-items:center;gap:2px 6px;min-height:24px}.captured-points{flex:none;padding:1px 6px;border-radius:999px;background:var(--surface-2);font-size:.75rem;font-weight:700;font-variant-numeric:tabular-nums}.captured-group{display:inline-flex}.captured-piece{display:inline-block;width:24px;height:24px}.captured-piece+.captured-piece{margin-left:-12px}:where([data-theme=dark]) .captured-b .pocket-icon svg,:where([data-theme=dark]) .captured-b .captured-piece svg{filter:drop-shadow(0 0 1px rgb(255 255 255 / .85))}.captured-piece svg{display:block;width:100%;height:100%}.pocket-piece{position:relative;display:inline-grid;place-items:center;width:28px;height:28px;padding:0;border:0;border-radius:var(--radius-sm);background:none}.pocket-button{width:36px;height:36px;border:1px solid var(--border);background:var(--surface-2);cursor:grab;touch-action:none}.pocket-button:hover{border-color:var(--accent)}.pocket-button[aria-pressed=true]{border-color:var(--accent);background:var(--board-selected)}.pocket-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.pocket-caption{flex:none;font-size:.6875rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.reserve-divider{flex:none;align-self:center;width:1px;height:22px;margin:0 2px;background:var(--border)}.pocket-spent .pocket-piece{opacity:.4}.pocket-large .pocket-piece{width:36px;height:36px}.pocket-icon{display:block;width:100%;height:100%}.pocket-icon svg{display:block;width:100%;height:100%}.pocket-count{position:absolute;right:-5px;bottom:-5px;min-width:17px;padding:0 4px;border-radius:999px;background:var(--accent);color:var(--accent-contrast);font-size:.7rem;font-weight:700;line-height:17px;text-align:center;font-variant-numeric:tabular-nums}.pocket-ghost{position:fixed;z-index:200;pointer-events:none;filter:drop-shadow(0 6px 8px rgb(0 0 0 / .35));transform:scale(1.08)}.pocket-ghost svg{display:block;width:100%;height:100%}.move-duck{margin-left:4px;color:var(--text-muted);font-size:.85em;font-weight:400}.move-die{display:inline-flex;margin-right:3px;vertical-align:-2px;opacity:.7}.move-die .die-face{width:12px;height:12px}.move-lost{color:var(--text-muted);font-style:italic;font-weight:400}.move-struck{color:var(--text-muted);text-decoration:line-through}.werera-line{margin:0;color:var(--text-muted);font-size:.85rem;text-align:center}.werera-pending{color:var(--accent);font-weight:600}.move-pair{display:inline-flex;flex-wrap:wrap;gap:2px 6px;min-width:0}.game-dice{--dice-tray-height: 56px;--dice-size: 36px;--dice-piece-size: 26px;--board-size: clamp(360px, 100vh - 208px - var(--dice-tray-height) - 8px, 800px)}.dice-tray{display:flex;align-items:center;gap:12px;height:var(--dice-tray-height);margin-top:8px;padding:0 8px 0 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface);box-sizing:border-box}.dice-tray-empty{visibility:hidden}.dice-tray-label{display:flex;flex:1 1 auto;align-items:center;gap:8px;min-width:0;font-weight:600;font-size:.92rem}.dice-tray-name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.dice-tray-dot{flex:none;width:12px;height:12px;border-radius:50%}.dice{display:flex;flex:none;gap:8px;align-items:center}.die{position:relative;display:inline-flex;align-items:center;gap:4px;padding:3px 8px 3px 3px;border-radius:10px;background:var(--accent-soft);transition:opacity .2s;animation:die-roll .35s ease-out}.die+.die{animation-delay:.06s;animation-fill-mode:backwards}.die-used,.die-forfeited{opacity:.35}.die-forfeited:after{content:"";position:absolute;inset:50% 6px auto;border-top:2px solid var(--danger);transform:rotate(-14deg)}.die-face{flex:none;width:var(--dice-size);height:var(--dice-size);fill:var(--surface);stroke:var(--text);stroke-width:1.6}.die-face circle{fill:var(--text);stroke:none}.die-face-octahedron path{stroke-linejoin:round}.die-face-octahedron text{fill:var(--text);stroke:none;font:700 13px var(--font-ui, system-ui),sans-serif;text-anchor:middle}.move-die .die-face-octahedron{width:16px;height:16px}.die-pieces{display:flex}.die-piece{display:inline-block;width:var(--dice-piece-size);height:var(--dice-piece-size)}.dice-skip{flex:none}@keyframes die-roll{0%{opacity:0;transform:rotate(-35deg) scale(.6)}}@media(prefers-reduced-motion:reduce){.die{animation:none}}@media(max-width:600px){.game-dice{--dice-tray-height: 50px;--dice-size: 30px;--dice-piece-size: 20px}.dice-tray{gap:8px;padding-left:10px}.dice{gap:6px}.dice-tray-name{font-size:.85rem}}.captured-advantage{font-size:.85rem;font-weight:600;color:var(--text-muted)}.game-panel{display:flex;flex-direction:column;gap:16px;min-width:0;padding:12px 16px 16px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow)}.panel-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 8px;min-height:34px;flex:none}.panel-top>.button-back{white-space:nowrap}.game-variant{flex-basis:100%;margin:0}.panel-top-end{position:relative;display:flex;flex:none;align-items:center;gap:6px;margin-left:auto}.panel-top-end>.display-menu{position:static}.panel-top-end .icon-button{width:34px;height:34px}.display-menu{position:relative}.display-popover{position:absolute;top:calc(100% + 6px);right:0;z-index:30;display:flex;flex-direction:column;gap:14px;width:min(300px,calc(100vw - 32px));padding:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.display-menu .icon-button{width:34px;height:34px}.display-menu.header-settings .icon-button{width:40px;height:40px}.display-menu .icon-button[aria-expanded=true]{background:var(--surface-2);color:var(--text)}.display-setting{display:flex;flex-direction:column;gap:6px}.display-setting-label{font-weight:600;font-size:.9rem}.display-setting-hint{color:var(--text-muted);font-size:.8rem}.status{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2)}.status-error{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.status-result{flex-direction:column;align-items:flex-start;gap:2px}.status-title{font-size:1.35rem;line-height:1.2}.status-note{color:var(--text-muted);font-size:.9rem;font-style:italic}.status-win{border-color:var(--win);background:var(--win-soft)}.status-win .status-title{color:var(--win)}.status-loss{border-color:var(--loss);background:var(--danger-soft)}.status-loss .status-title{color:var(--loss)}.thinking:after{content:"";display:inline-block;width:.6em;height:.6em;margin-left:8px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:-.05em;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.thinking:after{animation-duration:2.4s}}.panel-section{display:flex;flex-direction:column;gap:8px}.panel-heading-row{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:30px}.panel-heading{margin:0}.panel-note{margin:0;padding:8px 12px;border-radius:var(--radius);background:var(--surface-2);color:var(--text-muted);font-size:.85rem}.panel-note:has(.button){display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-note .button{flex:none}.panel-note-actions{display:flex;flex:none;gap:6px}.rules-learn{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:4px 0 6px;padding:12px 14px;border:1px solid var(--accent);border-radius:var(--radius);background:var(--accent-soft)}.rules-chess{margin:0;color:var(--text-muted);font-size:.92rem}.link-button{padding:0;border:0;background:none;color:var(--accent);font-weight:600;text-decoration:underline;text-underline-offset:2px;cursor:pointer}.link-button:hover{text-decoration-thickness:2px}.rules-back{align-self:flex-start;margin-bottom:-4px}.rules-learn-text{display:flex;flex-direction:column;gap:2px;font-size:.9rem}.rules-learn-text>span{color:var(--text-muted)}.rules-learn .button{flex:none}.learn-intro{margin:0;color:var(--text-muted);font-size:.9rem}.learn-technique p{margin:0}.learn-technique-title{margin:0 0 4px;color:var(--text);font-family:var(--font-display);font-size:1.05rem;font-weight:600}.learn-chapter{margin-top:16px}.learn-technique-group+.learn-technique-group{margin-top:6px}.learn-technique-heading{margin:6px 10px 2px;color:var(--text-muted);font-size:.8rem;font-weight:600}.learn-pocket{gap:10px}.learn-pocket-label,.learn-pocket-empty{color:var(--text-muted);font-size:.85rem}.game-hands{--board-size: clamp(360px, 100vh - 264px, 800px)}.learn-counter{flex:none;color:var(--text-muted);font-size:.8rem;font-variant-numeric:tabular-nums}.learn-tasks{display:flex;flex-direction:column;gap:2px;margin:0;padding:0;list-style:none}.learn-task{display:flex;align-items:center;gap:10px;width:100%;padding:7px 10px;border:1px solid transparent;border-radius:var(--radius);background:none;color:var(--text);font:inherit;font-size:.9rem;text-align:left;cursor:pointer}.learn-task:hover{background:var(--surface-2)}.learn-task[aria-current=step]{border-color:var(--accent);background:var(--accent-soft)}.learn-task-number{flex:none;width:1.5em;color:var(--text-muted);font-variant-numeric:tabular-nums}.learn-task-title{flex:1}.learn-task-done{display:inline-grid;flex:none;color:var(--win)}.learn-task-done svg{width:16px;height:16px}.panel-end{margin-top:auto}.panel-moves{flex:1;min-height:0}.move-list{flex:1;min-height:0;margin:0;padding:0;overflow-y:auto;list-style:none;font-variant-numeric:tabular-nums}.move-row{display:grid;grid-template-columns:2.6em repeat(var(--move-columns, 2),minmax(0,1fr));gap:4px;padding:2px 4px;border-radius:4px}.move-row:nth-child(odd){background:var(--surface-2)}.move-number{color:var(--text-muted)}.move-list-wrapped .move-number{grid-row:span 2}.move-list-wrapped .move{padding:0 4px;white-space:nowrap}.move-dot{display:inline-block;box-sizing:border-box;width:8px;height:8px;margin-right:4px;border-radius:50%;vertical-align:1px}.move-dot.avatar-b,.move-dot.avatar-blackA,.move-dot.avatar-blackB,.move-dot.avatar-blackRight{border-color:var(--text-muted)}.move{padding:0 6px;border-radius:4px;font-weight:500}.move-last{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent);font-weight:700}.move-button{min-width:0;border:0;background:none;color:inherit;font:inherit;font-weight:500;text-align:left;cursor:pointer;transition:background-color .12s ease}.move-button:hover{background:var(--accent-soft)}.move-button.move-last{font-weight:700}.move-glyph{margin-left:1px;font-weight:700}.move-glyph-inaccuracy{color:var(--inaccuracy)}.move-glyph-mistake{color:var(--mistake)}.move-glyph-blunder{color:var(--danger)}.review-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.review-nav-button{padding-inline:0}.analysis-start{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;border-radius:var(--radius);background:var(--surface-2);color:var(--text-muted);font-size:.85rem}.analysis-start .button{flex:none}.analysis-progress{margin:0;color:var(--text-muted);font-size:.85rem}.eval-graph{display:block;width:100%;height:48px;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;touch-action:pan-y}.eval-graph-black{fill:var(--eval-black)}.eval-graph-white{fill:var(--eval-white)}.eval-graph-middle{stroke:var(--text-muted);stroke-width:1;stroke-dasharray:3 3;opacity:.6;vector-effect:non-scaling-stroke}.eval-graph-mark{stroke-width:2;vector-effect:non-scaling-stroke}.eval-graph-mistake{stroke:var(--mistake)}.eval-graph-blunder{stroke:var(--danger)}.eval-graph-current{stroke:var(--accent);stroke-width:2;vector-effect:non-scaling-stroke}.analysis-table{width:100%;border-collapse:collapse;font-size:.85rem;font-variant-numeric:tabular-nums}.analysis-table th,.analysis-table td{padding:4px 6px;text-align:center}.analysis-table thead th{color:var(--text-muted);font-size:.78rem;font-weight:600}.analysis-table thead th.move-glyph-inaccuracy,.analysis-table thead th.move-glyph-mistake,.analysis-table thead th.move-glyph-blunder{font-weight:700}.analysis-table tbody tr{background:var(--surface-2)}.analysis-table tbody tr+tr{border-top:2px solid var(--surface)}.analysis-table tbody th{font-weight:600;text-align:left;white-space:nowrap}.analysis-table th:first-child,.analysis-table td:first-child{padding-left:10px}.analysis-table th:last-child,.analysis-table td:last-child{padding-right:10px}.analysis-table tbody tr:first-child>:first-child{border-top-left-radius:var(--radius-sm)}.analysis-table tbody tr:first-child>:last-child{border-top-right-radius:var(--radius-sm)}.analysis-table tbody tr:last-child>:first-child{border-bottom-left-radius:var(--radius-sm)}.analysis-table tbody tr:last-child>:last-child{border-bottom-right-radius:var(--radius-sm)}.analysis-you,.analysis-muted{color:var(--text-muted);font-weight:400}.analysis-accuracy{font-size:1rem;font-weight:700}.analysis-zero{color:var(--text-muted)}.analysis-best{color:var(--win)}.analysis-best svg{width:15px;height:15px;vertical-align:-3px;fill:currentColor;stroke-width:1.5}.analysis-count,.analysis-jump{padding:0 4px;border:0;border-radius:var(--radius-sm);background:none;font:inherit;font-weight:700;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;cursor:pointer}.analysis-count:hover,.analysis-jump:hover{background:var(--accent-soft)}.analysis-jump{color:inherit}.analysis-verdict{margin:0;font-size:.85rem}.analysis-praise{color:var(--win);font-weight:600}.analysis-advice{display:flex;align-items:center;gap:4px;color:var(--text-muted);font-size:.82rem}.analysis-advice svg{flex:none;width:14px;height:14px;color:var(--board-best-move)}.drop-in{position:relative;width:100%;height:100%;transform-origin:50% 90%;animation:drop-in .42s cubic-bezier(.35,0,.6,1) both}.drop-dust{position:absolute;inset:14%;border:3px solid var(--board-hint);border-radius:50%;pointer-events:none;animation:drop-dust .48s ease-out .2s both}@keyframes drop-in{0%{opacity:0;transform:translateY(-75%) scale(1.25)}20%{opacity:1}55%{transform:translateY(0) scale(1.08,.86)}75%{transform:translateY(-7%) scale(.97,1.04)}to{transform:none}}@keyframes drop-dust{0%{opacity:0;transform:scale(.4)}15%{opacity:1}to{opacity:0;transform:scale(1.5)}}@media(prefers-reduced-motion:reduce){.drop-in{animation:none}.drop-dust{display:none}}.board-stage{position:relative}.blast-layer{position:absolute;inset:0;z-index:20;pointer-events:none}.blast-piece{position:absolute;display:block}.blast-slide{animation:blast-slide .15s ease-in 30ms both}.blast-fly{display:block;width:100%;height:100%;animation:blast-fly .95s cubic-bezier(.12,.8,.3,1) .18s both}.blast-fly svg{display:block;width:100%;height:100%}.blast-flash,.blast-star,.blast-fireball,.blast-smoke,.blast-shockwave{position:absolute;border-radius:50%}.blast-flash{background:radial-gradient(circle,var(--board-blast-core) 0%,var(--board-blast-core) 35%,transparent 70%);animation:blast-flash .22s ease-out .18s both}.blast-star{border-radius:0;background:radial-gradient(circle,var(--board-blast-core) 10%,var(--board-blast-fire) 45%,var(--board-blast) 80%);animation:blast-star .42s ease-out .18s both}.blast-fireball{background:radial-gradient(circle,var(--board-blast-core) 0%,var(--board-blast-fire) 35%,var(--board-blast) 58%,transparent 72%);animation:blast-fireball .56s ease-out .2s both}.blast-smoke{background:radial-gradient(circle,var(--board-blast-smoke) 0%,var(--board-blast-smoke) 30%,transparent 70%);animation:blast-smoke 1.1s ease-out .36s both}.blast-shockwave{border:2px solid var(--board-blast-core);animation:blast-shockwave .52s ease-out .18s both}.blast-sparks{position:absolute}.blast-spark{position:absolute;top:47%;left:50%;width:24%;height:6%;border-radius:3px;background:linear-gradient(90deg,transparent,var(--board-blast-fire) 45%,var(--board-blast-core));transform-origin:0 50%;animation:blast-spark .56s ease-out .19s both}.blast-hop{width:100%;height:100%;transform-origin:50% 90%;animation:blast-hop .5s ease-out .22s both}@keyframes blast-slide{0%{transform:translate(var(--slide-x),var(--slide-y))}}@keyframes blast-fly{0%{opacity:1;transform:scale(.9)}70%{opacity:.8}to{opacity:0;transform:translate(var(--fly-x),var(--fly-y)) rotate(var(--fly-turn)) scale(.3)}}@keyframes blast-flash{0%{opacity:0;transform:scale(.3)}25%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.2)}}@keyframes blast-star{0%{opacity:0;transform:scale(.2) rotate(0)}8%{opacity:1}45%{opacity:1;transform:scale(1) rotate(12deg)}to{opacity:0;transform:scale(1.15) rotate(20deg)}}@keyframes blast-fireball{0%{opacity:0;transform:scale(.2)}10%{opacity:.9}40%{opacity:1;transform:scale(.85)}to{opacity:0;transform:scale(1.05)}}@keyframes blast-smoke{0%{opacity:0;transform:translateY(0) scale(.5)}30%{opacity:1}to{opacity:0;transform:translateY(-18%) scale(1.25)}}@keyframes blast-shockwave{0%{opacity:0;transform:scale(.15)}8%{opacity:.9}to{opacity:0;transform:scale(1.4)}}@keyframes blast-spark{0%{opacity:0;transform:rotate(var(--spark-turn)) translate(20%) scaleX(.4)}8%{opacity:1}to{opacity:0;transform:rotate(var(--spark-turn)) translate(900%) scaleX(1)}}@keyframes blast-hop{0%{transform:none}30%{transform:translateY(-30%) scale(.96,1.04)}58%{transform:translateY(0) scale(1.08,.9)}78%{transform:translateY(-7%)}to{transform:none}}@media(prefers-reduced-motion:reduce){.blast-layer{display:none}.blast-hop{animation:none}}.move-badge{position:absolute;top:.35cqi;right:.35cqi;z-index:2;display:grid;place-items:center;width:max(5.2cqi,20px);height:max(5.2cqi,20px);border-radius:50%;color:#fff;font-size:max(2.6cqi,10.5px);font-weight:800;line-height:1;letter-spacing:-.04em;box-shadow:0 1px 3px #00000059;pointer-events:none;animation:move-badge-in .16s ease-out}.move-badge svg{width:62%;height:62%;stroke-width:3}.move-badge-best svg{fill:currentColor;stroke-width:1.5}.move-badge-best{background:var(--board-badge-best)}.move-badge-good{background:var(--board-badge-good)}.move-badge-inaccuracy{background:var(--board-badge-inaccuracy);color:#3d2e00}.move-badge-mistake{background:var(--board-badge-mistake)}.move-badge-blunder{background:var(--board-badge-blunder)}@keyframes move-badge-in{0%{transform:scale(.6);opacity:0}}@media(prefers-reduced-motion:reduce){.move-badge{animation:none}}.review-controls{display:flex;flex-direction:column;gap:10px}.eval-bar{position:absolute;top:0;bottom:0;right:calc(-1 * (var(--column-gap) + 12px) / 2);display:flex;flex-direction:column-reverse;box-sizing:border-box;width:12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--eval-black);overflow:hidden}.eval-bar:after{content:"";position:absolute;top:50%;left:0;right:0;height:2px;margin-top:-1px;background:var(--accent);opacity:.7}.eval-bar-flipped{flex-direction:column}.eval-bar-white{flex:none;background:var(--eval-white);transition:flex-basis .24s ease}@media(prefers-reduced-motion:reduce){.eval-bar-white{transition:none}}.analysis-comment{display:flex;align-items:flex-start;gap:10px;font-size:.88rem}.analysis-comment p{margin:0}.analysis-eval{flex:none;min-width:3.6em;padding:3px 6px;border-radius:var(--radius-sm);background:var(--surface-2);font-weight:700;font-variant-numeric:tabular-nums;text-align:center}.move-list-empty{margin:0;color:var(--text-muted);font-size:.9rem}.game-actions,.watch-controls,.watch-speed{display:flex;flex-direction:column;gap:8px}.watch-speed{gap:6px}.watch-speed .option-chip{min-height:36px}.action-row{display:flex;gap:8px}.action-row>.button{flex:1 1 0;min-width:0;padding-inline:8px;font-size:.95rem;white-space:nowrap}.board-placeholder{aspect-ratio:1;border-radius:var(--radius-sm);background:var(--surface-2)}.task-bar{min-height:56px}.task-content{display:flex;flex:1;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;min-width:0;font-weight:600}.task-text{display:flex;flex-direction:column}.task-title{font-size:1.1rem}.task-detail{color:var(--text-muted);font-size:.88rem;font-weight:400}.task-active{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}.task-success{border-color:var(--win);box-shadow:inset 3px 0 0 var(--win);background:var(--win-soft)}.task-success .task-title,.task-success .thinking{color:var(--win)}.task-error{border-color:var(--danger);box-shadow:inset 3px 0 0 var(--danger);background:var(--danger-soft);color:var(--danger)}.puzzle-filters{display:grid;grid-template-columns:1fr 1fr;gap:10px}.puzzle-level{display:flex;flex-direction:column;gap:6px}.puzzle-level-head{display:flex;align-items:center;gap:8px}.puzzle-level-name{font-weight:700;font-size:1.05rem}.puzzle-level-change .icon{display:block;width:16px;height:16px}.puzzle-level-up{color:var(--win);transform:rotate(-90deg)}.puzzle-level-down{color:var(--loss);transform:rotate(90deg)}.puzzle-level-restart{margin-left:auto}.start-choices{display:grid;gap:6px}.start-choice{flex-direction:column;align-items:flex-start;gap:2px;padding:8px 12px;text-align:left;white-space:normal}.start-choice-text{color:var(--text-muted);font-size:.85rem;font-weight:400}.puzzle-start{display:flex;flex-direction:column;justify-content:center;gap:16px;padding:clamp(16px,6%,48px)}.puzzle-start .start-choice{padding:12px 16px}.puzzle-suggestion{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin-top:-6px}.puzzle-info{display:flex;flex-direction:column;gap:8px;font-size:.92rem}.puzzle-explanation{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border-radius:var(--radius);background:var(--surface-2)}.puzzle-explanation p{margin:0;line-height:1.45}.theme-chips{display:flex;flex-wrap:wrap;gap:6px}.theme-chip{padding:2px 10px;border-radius:999px;background:var(--accent-soft);font-size:.82rem;font-weight:600}.puzzle-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:0}.stat{display:flex;flex-direction:column-reverse;justify-content:flex-end;gap:2px;padding:8px 4px;border-radius:var(--radius);background:var(--surface-2);text-align:center}.stat dt{font-size:.72rem;line-height:1.25;color:var(--text-muted)}.stat dd{margin:0;font-size:1.4rem;font-weight:700;line-height:1.2;font-variant-numeric:tabular-nums}.puzzle-source{margin:0;font-size:.75rem;color:var(--text-muted)}.promotion-backdrop{position:absolute;inset:0;z-index:10;display:grid;place-items:center;background:#00000073}.promotion-dialog{display:flex;flex-direction:column;align-items:center;gap:10px;padding:16px;border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.promotion-title{margin:0;font-weight:600}.promotion-options{display:flex;gap:8px}.promotion-option{width:clamp(48px,12vw,76px);aspect-ratio:1;padding:4px;border:1px solid var(--border);border-radius:var(--radius);background:var(--board-light);cursor:pointer}.promotion-option:hover{background:var(--board-dark)}.promotion-option svg{display:block;width:100%;height:100%}.promotion-note{max-width:32ch;margin:0;color:var(--text-muted);font-size:.875rem;text-align:center}.promotion-option-labelled{display:flex;flex-direction:column;align-items:center;width:auto;aspect-ratio:auto;padding:6px 14px 8px;color:#2b2520;font-weight:600}.promotion-option-labelled svg{width:clamp(44px,11vw,64px);height:auto;aspect-ratio:1}.promotion-option-label{font-size:.875rem}.gate-row{display:flex;flex-direction:column;align-items:center;gap:4px}.gate-square{color:var(--text-muted);font-size:.875rem}.gate-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.modal-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:16px;background:#00000080}.modal{display:flex;flex-direction:column;gap:12px;width:100%;max-width:560px;max-height:calc(100vh - 32px);padding:20px;overflow:auto;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow)}.modal-title{font-size:1.2rem}.modal-description{margin:0;color:var(--text-muted);font-size:.92rem}.pgn-text{width:100%;min-height:200px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);color:var(--text);font:.85rem/1.5 ui-monospace,Cascadia Mono,Consolas,monospace;resize:vertical}.modal-actions{display:flex;flex-wrap:wrap;gap:8px}.modal-rules{max-width:900px}.rule-gallery{display:flex;flex-wrap:wrap;gap:8px 14px;margin:2px 0 6px;padding:0;list-style:none}.rule-gallery li{display:flex;flex-direction:column;align-items:center;gap:2px}.rule-gallery-pieces{display:flex}.rule-gallery-pieces>svg{width:44px;height:44px}.rule-gallery-legend>svg{width:32px;height:32px}.rule-gallery-name{color:var(--text-muted);font-size:.78rem}.rule-diagrams{display:flex;flex-wrap:wrap;gap:12px 16px;margin-top:8px}.rule-diagram{--rule-cell: 48px;display:flex;flex-direction:column;gap:6px;width:calc(var(--rule-files) * var(--rule-cell));max-width:100%;margin:0}.rule-diagram.rule-diagram-squares{--rule-cell: 54px}@media(max-width:520px){.rule-diagrams{gap:14px}.rule-diagram,.rule-diagram.rule-diagram-squares{--rule-cell: 42px;width:min(100%,var(--rule-files) * 60px)}}.rule-diagram figcaption{color:var(--text-muted);font-size:.8rem;line-height:1.35}.rule-stage{position:relative}.rule-notice{position:absolute;right:4px;bottom:4px;left:4px;z-index:6;margin:0;padding:5px 8px;border:1px solid var(--danger);border-radius:var(--radius-sm);background:var(--danger-soft);box-shadow:var(--shadow);color:var(--danger);font-size:.75rem;font-weight:500;line-height:1.3;text-align:center;pointer-events:none}.rule-notice[hidden]{display:none}.rule-window:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.rule-board-diagram{width:400px}.rule-board-diagram.rule-board-yalta,.rule-board-diagram.rule-board-four{width:480px}.rule-board-diagram.rule-board-round{width:400px}.rule-board-diagram.rule-board-hex{width:380px}.rule-board-diagram.rule-board-alice{width:480px}.rule-board-diagram.rule-board-alice .alice-boards{gap:10px}@media(max-width:860px){.rule-board-diagram.rule-board-alice .alice-boards{grid-template-columns:repeat(2,minmax(0,1fr))}.rule-board-diagram.rule-board-alice .alice-board-frame{width:100%}}.rule-board-diagram.rule-board-eight{width:100%}.rule-board-diagram.rule-board-raum{width:340px;max-width:100%}.rule-board-diagram.rule-board-raum-side{width:560px}.rule-board-diagram.rule-board-raum .raum-svg{max-height:none}.rule-board-diagram .board-notice,.rule-board-diagram .paco-turn-bar{top:auto;bottom:6px;max-width:calc(100% - 12px);padding:5px 8px;font-size:.75rem;line-height:1.3}.rule-board-diagram .paco-turn-bar{gap:6px}@media(max-width:520px){.rule-board-diagram,.rule-board-diagram.rule-board-yalta,.rule-board-diagram.rule-board-four,.rule-board-diagram.rule-board-round,.rule-board-diagram.rule-board-hex,.rule-board-diagram.rule-board-alice,.rule-board-diagram.rule-board-raum{width:100%}}.rule-pocket{display:flex;justify-content:center;padding-top:6px}.rule-pocket-piece{position:relative;width:var(--rule-cell);height:var(--rule-cell);border:1px dashed var(--border);border-radius:var(--radius-sm)}.rule-pocket-lifted{border-style:solid;background:var(--board-selected)}.rule-pocket-piece>svg{position:absolute;inset:4%;width:92%;height:92%}.rule-again{position:absolute;top:4px;right:4px;z-index:7;width:30px;height:30px;box-shadow:var(--shadow)}.rule-again svg{width:16px;height:16px}.rule-window{position:relative;width:100%;border-radius:var(--radius-sm);overflow:hidden;box-shadow:inset 0 0 0 1px #00000040}.rule-board{position:absolute;display:grid}.rule-cell{position:relative;aspect-ratio:1}.rule-cell-target{cursor:pointer}.rule-piece{position:absolute;inset:0;z-index:1}.rule-piece>svg{position:absolute;inset:4%;width:92%;height:92%}.rule-piece-hidden{opacity:.35}.rule-piece-slide{z-index:4;animation:rule-slide .26s ease-out}@keyframes rule-slide{0%{transform:translate(calc(var(--dx) * 100%),calc(var(--dy) * 100%))}}@media(prefers-reduced-motion:reduce){.rule-piece-slide{animation:none}}.rule-cell-light{background:var(--board-light);box-shadow:inset 0 0 0 .5px var(--board-grid, transparent)}.rule-cell-dark{background:var(--board-dark);box-shadow:inset 0 0 0 .5px var(--board-grid, transparent)}.rule-cell-fog-light{background:var(--board-fog-light)}.rule-cell-fog-dark{background:var(--board-fog-dark)}.rule-cell-blast{box-shadow:inset 0 0 0 3px var(--board-blast)}.rule-cell-lifted:before{content:"";position:absolute;inset:0;background:var(--board-selected)}.rule-dot,.rule-capture,.rule-cross{position:absolute;inset:0;pointer-events:none}.rule-dot{background:radial-gradient(circle,var(--board-hint) 22%,transparent 24%)}.rule-capture{inset:3%;border-radius:50%;box-shadow:inset 0 0 0 3px var(--board-hint)}.rule-cross{background:linear-gradient(45deg,transparent 44%,var(--danger) 44%,var(--danger) 56%,transparent 56%) center / 46% 46% no-repeat,linear-gradient(-45deg,transparent 44%,var(--danger) 44%,var(--danger) 56%,transparent 56%) center / 46% 46% no-repeat}.rule-cross-piece{inset:auto -2% -2% auto;z-index:3;width:44%;height:44%;border-radius:50%;background-color:var(--surface);background-size:62% 62%;box-shadow:0 0 0 1px var(--danger)}.rule-cell-ringed:after{content:"";position:absolute;inset:0;z-index:2;border-radius:50%;box-shadow:inset 0 0 0 2px var(--danger)}.rule-cell-last:before{content:"";position:absolute;inset:0;background:var(--board-last-move)}.rule-cell-cursor:after{content:"";position:absolute;inset:0;z-index:5;box-shadow:inset 0 0 0 3px var(--accent)}.rule-board-points .rule-cell-lifted:before,.rule-board-points .rule-cell-last:before,.rule-board-points .rule-cell-cursor:after{inset:2%;border-radius:50%}.rules-section{display:flex;flex-direction:column;gap:4px}.rules-section p{margin:0;font-size:.92rem}.rules-heading{margin:0;font-size:1rem;font-weight:600}.rules-link{display:inline-flex;align-items:center;gap:4px;align-self:flex-start;font-size:.92rem}.rules-link .icon{width:14px;height:14px}.board-notice{position:absolute;top:calc(100% + 4px);left:50%;z-index:5;width:max-content;max-width:calc(100% - 32px);margin:0;padding:8px 14px;transform:translate(-50%);border:1px solid var(--danger);border-radius:var(--radius);background:var(--danger-soft);box-shadow:var(--shadow);color:var(--danger);font-size:.9rem;font-weight:500;text-align:center;pointer-events:none}.board-notice[hidden]{display:none}.board-hint{border-color:var(--accent);background:var(--accent-soft);color:var(--text);font-weight:400}.modal-note{margin:0;color:var(--text-muted);font-size:.85rem}.option-list{display:flex;flex-direction:column;gap:8px}.option-button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;min-height:44px;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);text-align:left;cursor:pointer;transition:border-color .15s,background-color .15s}.option-button:hover{border-color:var(--accent);background:var(--surface-2)}.option-title{font-weight:600}.option-detail{color:var(--text-muted);font-size:.85rem}.score-line{font-variant-numeric:tabular-nums}.exit-list{display:grid;gap:2px;margin:0;padding:0;list-style:none;color:var(--text-muted);font-size:.85rem}@media(min-width:861px){.game-panel{contain:size;overflow-y:auto}}:where([data-theme=dark]) .variant-cover,:where([data-theme=dark]) .menu-card-thumb,:where([data-theme=dark]) .recent-chip img,:where([data-theme=dark]) .setup-dialog-cover img{filter:brightness(.88)}@media(max-width:860px){.app{--page-width: 640px}.variant-grid{grid-template-columns:minmax(0,1fr);gap:8px}.variant-card{flex-direction:row;align-items:center}.variant-cover{flex:none;width:64px;height:64px;margin:7px 0 7px 7px;border:0;border-radius:var(--radius-sm);aspect-ratio:1}.variant-text{flex:1;min-width:0;padding:8px 4px 8px 12px}.choice-subtitle{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.variant-chevron{display:block;flex:none;padding-right:12px;color:var(--text-muted)}.variant-chevron .icon{display:block;width:18px;height:18px}.variant-note:not(.variant-progress,.variant-story,.search-reason,.variant-match,.variant-many){display:none}.variant-note.variant-many{overflow:hidden;color:var(--accent);font-weight:600;text-overflow:ellipsis;white-space:nowrap}.search-result .choice-subtitle{-webkit-line-clamp:1}.tile-star{display:none}.tile-favorite-mark{display:inline-flex}.is-customizing .tile-favorite-mark{display:none}.is-customizing .tile-star{display:grid;top:50%;right:6px;width:40px;height:40px;border:0;background:transparent;color:var(--text-muted);transform:translateY(-50%)}.is-customizing .tile-star[aria-pressed=true]{color:var(--accent)}.is-customizing .tile-star .icon{width:22px;height:22px}.is-customizing .variant-card{padding-left:34px;cursor:default}.is-customizing .variant-chevron{display:none}.is-customizing .variant-text{padding-right:50px}.tile-tools{top:0;bottom:0;left:0;padding:0;border-radius:var(--radius) 0 0 var(--radius);background:transparent;color:var(--text-muted)}.tile-handle{width:38px;height:100%;border-radius:inherit}.tile-move{display:none}.drag-ghost>.variant-card{transform:scale(1.02)}.customize-bar-text span,.is-customizing .setup-section-heading .setup-section-hint,.section-order-label{display:none}.menu-tabs{width:100%}.menu-tabs .activity-tab{min-width:0}.activity-tab{padding-inline:4px;white-space:nowrap}.setup-dialog-backdrop{place-items:end stretch;padding:0}.setup-dialog{max-width:none;max-height:92dvh;border-bottom:0;border-radius:var(--radius-lg) var(--radius-lg) 0 0}.setup-dialog-cover img{aspect-ratio:3 / 1}.setup-dialog-body{gap:14px;padding:14px 16px 16px}.setup-dialog-title{font-size:1.35rem}.setup-fields{grid-template-columns:minmax(0,1fr)}.setup-dialog-footer{padding:12px 16px max(14px,env(safe-area-inset-bottom))}.game{grid-template-columns:minmax(0,1fr);gap:16px}.game-panel>*{order:5}.game-panel>.panel-top{order:0}.game-panel>.status,.game-panel>.panel-note,.game-panel>.panel-exits,.game-panel>.puzzle-info{order:1}.game-panel>.game-actions{order:2}.game-panel>.review-controls{order:1}.eval-bar{display:none}.game-yalta,.game-four{grid-template-columns:minmax(0,1fr)}.move-list{display:flex;gap:2px;padding-bottom:4px;overflow-x:auto;overflow-y:hidden;white-space:nowrap;scrollbar-width:thin}.move-row,.move-row:nth-child(odd){display:flex;flex:none;gap:2px;padding:2px 0;background:none}.move-number{padding-left:4px}.setup{gap:22px}}@media(max-width:600px){.setup-title{font-size:1.6rem}.menu-card{flex-wrap:wrap;gap:10px 12px;padding:10px}.menu-card-thumb{width:48px;height:48px}.menu-card-actions{flex-basis:100%}.menu-card-main{flex:1}.brand-title{font-size:1.15rem}.install-offer-actions{width:100%}.install-offer-actions .button{flex:1}.game,.game-panel{gap:12px}.player-bar{min-height:48px}.player-bars{grid-auto-flow:row}.game-four .player-bars{grid-auto-flow:column;gap:6px}.game-four .player-bars .player-bar{flex-wrap:wrap;align-content:flex-start;gap:2px 6px;min-height:0;padding:4px 6px 5px 4px}.game-four .player-bars .player-main{display:contents}.game-four .player-bars .captured{flex:1;min-width:0}.game-four .player-bars .player-name{flex-basis:100%;flex-wrap:wrap;gap:2px;font-size:.8rem}.game-four .player-bars .player-bar.eliminated{opacity:.55}.game-four .player-bars .player-tag-prefix{display:none}.game-four .player-bars .inline-select{min-height:0;margin-left:-4px;padding:1px 4px}.game-four .player-bars .inline-select-value{white-space:normal;line-height:1.2}.game-four .player-bars .avatar{width:28px;height:28px}.game-four .player-bars .avatar .icon{width:18px;height:18px}.game-four .player-bars .turn-badge{display:none}.game-four .player-bars .player-tag{margin-left:0;padding:0 5px;font-size:.7rem}.game-four .player-bars .captured,.game-four .player-bars .captured-list{min-height:18px}.game-four .player-bars .captured-piece{width:14px;height:14px}.game-eight .player-bars{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-flow:row}.yalta-board,.round-board,.hex-board{margin-inline:calc(4px - var(--page-gutter))}.yalta-notation{font-size:4.4px}.round-notation,.hex-notation{font-size:4.2px}.four-notation{font-size:3.4px}.paco-notation text{font-size:.22px}.avatar{width:34px;height:34px}.captured-piece{width:20px;height:20px}.captured-piece+.captured-piece{margin-left:-10px}}.player-clock{flex:none;padding:2px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text-muted);font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.player-clock.running{border-color:var(--accent);background:var(--accent-soft);color:var(--text)}.player-clock.low{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.player-note{margin-left:6px;color:var(--text-muted);font-size:.8rem;font-style:italic;font-weight:400}.game-eight .player-bars .player-clock{order:1;padding:0 6px;font-size:.8rem}.panel-text{margin:0;font-size:.9rem}.muted{color:var(--text-muted)}.input{width:100%;min-height:44px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit}.input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.spinner{display:inline-block;width:10px;height:10px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .9s linear infinite}.select-friend{border-color:var(--accent);background-color:var(--accent-soft);font-weight:600}.seat-field-label{display:inline-flex;align-items:center;gap:6px}.setup-privacy{margin:8px 0 0;color:var(--text-muted);font-size:.8rem;text-align:center}.setup-error{margin-top:8px;color:var(--danger)}.clock-chips .option-chip{min-width:64px}.game-waiting .board-column{opacity:.45;filter:grayscale(.9);pointer-events:none;user-select:none}.online-waiting{gap:12px;padding:14px;border:1px solid var(--accent);border-radius:var(--radius);background:var(--accent-soft)}.online-waiting-title{margin:0;font-size:1.05rem;font-weight:700}.online-link{display:flex;flex-wrap:wrap;gap:6px}.online-link-field{flex:1 1 200px;min-width:0;min-height:36px;padding:4px 10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit;font-family:ui-monospace,Consolas,monospace;font-size:.82rem}.online-seats{display:flex;flex-direction:column;gap:4px;margin:0;padding:0;list-style:none}.online-seat{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;min-height:36px;padding:4px 10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit;font-size:.9rem;text-align:left}.online-seat.free{border-style:dashed}.online-seat-pick{cursor:pointer}.online-seat-pick[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}button.online-seat:disabled{opacity:.6}.online-seat-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.online-seat-state{color:var(--text-muted);font-size:.82rem;white-space:nowrap}.online-seat-state.joined{color:var(--win);font-weight:600}.online-settings{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}.online-settings li{padding:2px 10px;border-radius:999px;background:var(--accent-soft);font-size:.82rem;font-weight:600}.online-cancel{align-self:flex-start}.online-stage{gap:10px;padding:14px;border:1px solid var(--accent);border-radius:var(--radius);background:var(--accent-soft)}.online-stage .button-primary{align-self:flex-start}.online-spectating{margin:0;color:var(--text-muted);font-size:.875rem;font-weight:600}.online-device{display:flex;flex-direction:column;gap:8px}.online-offer{display:flex;flex-direction:column;gap:8px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);font-size:.9rem}.online-offer-ask{border-color:var(--accent);background:var(--accent-soft)}.online-offer-actions{display:flex;flex-wrap:wrap;gap:6px}.online-notice{margin:0;color:var(--danger);font-size:.875rem}.online-loading{display:flex;flex-direction:column;align-items:flex-start;gap:16px;padding-block:24px}@media(min-width:861px){.game-panel:has(.online-chat) .panel-moves{min-height:140px}}.online-chat-list{display:flex;flex-direction:column;gap:4px;max-height:220px;margin:0;padding:0;overflow-y:auto;list-style:none;font-size:.9rem;overflow-wrap:anywhere}.online-chat-list .mine{color:var(--text-muted)}.online-chat-form{display:flex;gap:6px}.online-chat-input{flex:1;min-width:0;min-height:36px;padding:4px 10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit}.online-games{display:flex;flex-direction:column;gap:10px;min-width:0}.online-games-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:0}.online-list{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none}.online-row{display:grid;grid-template-columns:48px minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:10px 12px 10px 10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.online-row.to-move{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}.online-row.finished{background:transparent}.online-row-thumb{width:48px;height:48px;border-radius:var(--radius-sm);object-fit:cover}.online-row-text{display:flex;flex-direction:column;gap:2px;min-width:0}.online-row-title{overflow:hidden;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.online-row-details{overflow:hidden;color:var(--text-muted);font-size:.85rem;text-overflow:ellipsis;white-space:nowrap}.online-row-state{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.online-badge{padding:3px 10px;border-radius:999px;font-size:.8rem;font-weight:700;white-space:nowrap}.online-badge-move{background:var(--accent);color:var(--accent-contrast)}.online-badge-wait,.online-badge-neutral{border:1px solid var(--border);background:var(--surface-2);color:var(--text-muted);font-weight:600}.online-badge-win{background:var(--win-soft);color:var(--win)}.online-badge-loss{background:var(--danger-soft);color:var(--danger)}.online-row-clock{color:var(--text-muted);font-size:.85rem;font-variant-numeric:tabular-nums;white-space:nowrap}.online-row-actions{display:flex;align-items:center;gap:6px}.online-link-compact{flex-wrap:nowrap}.online-finished-toggle{align-self:flex-start;min-height:32px;padding:4px 6px;border:0;background:transparent;color:var(--text-muted);font:inherit;font-size:.875rem;font-weight:600;cursor:pointer}.online-finished-toggle:hover{color:var(--text)}@media(max-width:600px){.online-row{grid-template-columns:44px minmax(0,1fr);gap:8px 10px}.online-row-thumb{grid-row:span 2;align-self:start;width:44px;height:44px}.online-row-state{grid-column:2;flex-direction:row;flex-wrap:wrap;align-items:center;gap:4px 8px}.online-row-details{white-space:normal}.online-row-actions{grid-column:1 / -1}.online-row-actions>.button:not(.menu-card-dismiss),.online-row-actions .online-link{flex:1}.online-row-actions .online-link .button{flex:1}}@media(prefers-reduced-motion:reduce){.spinner{animation:none}}.variant-story{color:var(--accent);font-weight:600}.story-tab,.story{display:flex;flex-direction:column;gap:14px}.story-meta{margin:0;color:var(--text-muted);font-size:.85rem;font-weight:600}.story-part{display:flex;flex-direction:column;gap:2px}.story-part p{margin:0;font-size:.92rem}.story-heading{margin:0;font-size:.95rem;font-weight:600}.story-back{align-self:flex-start;margin-bottom:-6px}.story-title{margin:0;font-family:var(--font-display);font-size:1.25rem;font-weight:600}.story-sources{margin:0;color:var(--text-muted);font-size:.78rem}.story-sources a{color:inherit}.rules-story{margin-top:6px}.family{display:flex;flex-direction:column;gap:8px}.family-strip{display:flex;align-items:flex-start;padding:12px;border-radius:var(--radius);background:var(--surface-2)}.family-step{display:flex;flex:none;justify-content:center;width:84px}.family-item{display:flex;flex-direction:column;align-items:center;gap:4px;width:100%;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:center}.family-button{cursor:pointer}.family-thumb{flex:none;width:40px;height:40px;border-radius:50%;background-color:var(--surface);background-position:center;background-size:200% 100%;box-shadow:0 0 0 2px var(--surface),0 0 0 3px var(--border)}.family-button:hover .family-thumb,.family-button:focus-visible .family-thumb,.family-self .family-thumb{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--accent)}.family-thumb-ancestor{display:grid;place-items:center;border:1.5px dashed var(--text-muted);background:transparent;box-shadow:none;color:var(--text-muted);font-family:var(--font-display);font-weight:600}.family-text{display:flex;flex-direction:column;min-width:0;line-height:1.2}.family-name{font-size:.78rem;font-weight:600}.family-date{color:var(--text-muted);font-size:.7rem}.family-link{flex:1 1 12px;min-width:12px;margin-top:20px;border-top:1.5px solid var(--text-muted);opacity:.55}.family-link-disputed{border-top-style:dashed}.family-link-borrowed{border-top-style:dotted}.family-children{display:flex;flex:1 1 auto;flex-direction:column;gap:6px;min-width:0;margin:6px 0 0;padding:0 0 0 10px;border-left:1.5px solid color-mix(in srgb,var(--text-muted) 55%,transparent);list-style:none}.family-child{position:relative}.family-child:before{content:"";position:absolute;top:14px;left:-10px;width:8px;border-top:1.5px solid color-mix(in srgb,var(--text-muted) 55%,transparent)}.family-child-disputed:before{border-top-style:dashed}.family-item-row{flex-direction:row;gap:8px;text-align:left}.family-item-row .family-thumb{width:28px;height:28px}.family-more{font-size:.8rem}.family-ideas{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0;color:var(--text-muted);font-size:.8rem}.family-chip{display:inline-flex;align-items:center;gap:6px;padding:2px 10px 2px 2px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);font:inherit;font-weight:600}button.family-chip{cursor:pointer}button.family-chip:hover{border-color:var(--accent)}.family-chip .family-thumb{width:22px;height:22px;box-shadow:none}.family-dispute{margin:0;color:var(--text-muted);font-size:.8rem}.family-dispute strong{color:var(--text)}@media(max-width:600px){.family-grandparent{display:none}.family-strip{padding:10px 8px}.family-step{width:72px}}.story-tree-link{display:inline-flex;align-self:flex-start;align-items:center;gap:4px;margin-top:6px;font-size:.9rem}.story-tree-link .icon{width:16px;height:16px}.tree-screen{display:flex;flex-direction:column;gap:14px}.tree-legend{display:flex;flex-wrap:wrap;gap:6px 18px;margin:0;padding:0;color:var(--text-muted);font-size:.8rem;list-style:none}.tree-legend li{display:inline-flex;align-items:center;gap:6px}.tree-legend-line{width:26px;border-top:1.6px solid var(--text-muted)}.tree-legend-disputed{border-top-style:dashed}.tree-legend-borrowed{border-top:2.4px dotted var(--accent)}.tree-legend-dot{width:14px;height:14px;border-radius:50%;background:var(--accent-soft);box-shadow:inset 0 0 0 1.5px var(--accent)}.tree-legend-ancestor{border:1.5px dashed var(--text-muted);background:transparent;box-shadow:none}.tree{position:relative}.tree-lines{position:absolute;inset:0;z-index:1;width:100%;height:100%;overflow:visible;pointer-events:none}.tree-line{fill:none;stroke:var(--text-muted);stroke-opacity:.6;stroke-width:1.6;transition:stroke-opacity .15s}.tree-line-disputed{stroke-dasharray:6 5}.tree-line-borrowed{stroke:var(--accent);stroke-dasharray:.5 5;stroke-linecap:round;stroke-width:2.4;stroke-opacity:0}.tree-line-end{fill:var(--text-muted);fill-opacity:.6}.tree.is-dimmed .tree-line:not(.is-lit),.tree.is-dimmed .tree-band-line:not(.is-lit) .tree-line{stroke-opacity:.18}.tree.is-dimmed .tree-line-borrowed:not(.is-lit){stroke-opacity:0}.tree-line.is-lit,.tree-band-line.is-lit .tree-line{stroke:var(--accent);stroke-opacity:1;stroke-width:2.4}.tree-map{position:relative}.tree-stripe{position:absolute;top:0;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--surface-2) 70%,transparent)}.tree-region{position:absolute;top:0;display:flex;align-items:center;justify-content:center;padding:0 2px;color:var(--text-muted);font-size:.72rem;font-weight:700;letter-spacing:.06em;line-height:1.15;text-align:center;text-transform:uppercase}.tree-era{position:absolute;right:0;left:0;border-top:1px dashed var(--border)}.tree-era span{position:absolute;top:3px;left:4px;z-index:3;padding:0 3px;border-radius:4px;background:var(--bg);color:var(--text-muted);font-size:.72rem;font-weight:600}.tree-node{position:absolute;z-index:2;display:flex;flex-direction:column;align-items:center;gap:4px;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:center;cursor:pointer;transition:opacity .15s}.tree-node .family-thumb{width:54px;height:54px}.tree-node-text{display:flex;flex-direction:column;align-items:center;gap:2px}.tree-node-name,.tree-node-date{padding:0 4px;border-radius:4px;background:var(--bg);line-height:1.2}.tree-node-name{font-size:.82rem;font-weight:600}.tree-node-date{color:var(--text-muted);font-size:.72rem}.tree-node:hover .family-thumb,.tree-node:focus-visible .family-thumb,.tree-node.is-lit .family-thumb,.tree-band-item:focus-visible .family-thumb,.tree-band-item.is-lit .family-thumb{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--accent)}.tree-node:focus-visible,.tree-band-item:focus-visible{outline:none}.tree.is-dimmed .tree-node:not(.is-lit),.tree.is-dimmed .tree-band-item:not(.is-lit){opacity:.35}.tree-map.is-compact .tree-region{font-size:.56rem;letter-spacing:.02em}.tree-map.is-compact .tree-era span{left:0;font-size:.62rem}.tree-map.is-compact .family-thumb{width:38px;height:38px}.tree-map.is-compact .tree-node-name{padding:0 1px;font-size:.64rem}.tree-map.is-compact .tree-node-date{padding:0 1px;font-size:.6rem}.tree-band{position:relative;z-index:2;display:flex;flex-direction:column;gap:12px;margin-top:30px;padding:14px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow)}.tree-band .setup-section-heading{margin:0}.tree-band-groups{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.tree-band-group{display:flex;flex-direction:column;gap:6px;min-width:0;padding:10px;border-radius:var(--radius);background:var(--surface-2)}.tree-band-group-title{margin:0 0 2px;font-size:.85rem;font-weight:600}.tree-band-list{display:flex;flex-direction:column;gap:4px;margin:0;padding:0;list-style:none}.tree-band-heirs{margin:4px 0 0 15px;padding-left:14px;border-left:1.5px solid color-mix(in srgb,var(--text-muted) 55%,transparent)}.tree-band-item{display:flex;align-items:center;gap:8px;width:100%;min-width:0;padding:3px 6px 3px 3px;border:0;border-radius:999px;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:opacity .15s}.tree-band-item:hover,.tree-band-item.is-lit{background:var(--accent-soft)}.tree-band-item .family-thumb{width:32px;height:32px}.tree-band-item .tree-node-text{align-items:flex-start}.tree-band-item .tree-node-name,.tree-band-item .tree-node-date{padding:0;background:none}.tree-band-item .tree-node-name{font-size:.86rem}.tree-band-item.is-ancestor .tree-node-name{color:var(--text-muted);font-style:italic;font-weight:500}@media(max-width:860px){.tree-band-groups{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.tree-band{padding:10px}.tree-band-groups{gap:8px}.tree-band-group{padding:8px 6px}.tree-band-item .family-thumb{width:28px;height:28px}.tree-band-item .tree-node-name{font-size:.78rem}.tree-band-heirs{margin-left:13px;padding-left:8px}}.forms{display:flex;flex-direction:column;gap:8px}.forms-text{margin:0;font-size:.92rem}.forms-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none}.forms-line li{position:relative}.forms-line li+li:before{content:"→";position:absolute;top:24px;left:-5px;color:var(--text-muted);font-size:.8rem;transform:translate(-50%,-50%)}.forms-item{display:flex;flex-direction:column;align-items:center;gap:2px;width:100%;padding:6px 4px;border:1px solid transparent;border-radius:var(--radius);background:var(--surface-2);color:inherit;font:inherit;text-align:center;cursor:pointer}.forms-item:hover{border-color:var(--border)}.forms-item.is-disputed{border-color:var(--border);border-style:dashed}.forms-item[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft)}.forms-piece{display:block;width:40px;height:40px}.forms-piece svg{display:block;width:100%;height:100%}.forms-name{font-size:.82rem;font-weight:600;line-height:1.2}.forms-game{color:var(--text-muted);font-size:.7rem;line-height:1.2}.forms-item.is-own .forms-game{color:var(--accent);font-weight:600}.forms-label{margin:4px 0 0;color:var(--text-muted);font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.forms-caption{margin:0;padding:8px 10px;border-radius:var(--radius);background:var(--surface-2);font-size:.86rem}.forms-dispute{color:var(--text-muted)}@media(max-width:600px){.forms-row{gap:8px}.forms-piece{width:34px;height:34px}.forms-name{font-size:.74rem}.forms-game{font-size:.64rem}}.learn-master{display:flex;flex-direction:column;gap:4px}.learn-master .eyebrow{margin:0}.learn-master-source{margin:0;padding:8px 12px;border-left:3px solid var(--accent);border-radius:0 var(--radius) var(--radius) 0;background:var(--surface-2);color:var(--text);font-size:.88rem}.learn-chapter-intro{margin:0 10px 4px;color:var(--text-muted);font-size:.8rem}.story-masters{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--accent);border-radius:var(--radius);background:var(--accent-soft);font-size:.88rem}.story-masters .family-thumb{width:40px;height:40px}.story-masters-text{display:flex;flex:1;flex-direction:column;gap:2px;min-width:0}.story-masters-text .eyebrow{margin:0}.story-masters .button{flex:none}@media(max-width:600px){.story-masters{flex-wrap:wrap}.story-masters .button{flex:1 1 100%}}.rules-bridge{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);font-size:.9rem}.rules-bridge>summary{display:flex;align-items:center;gap:10px;padding:8px 12px;list-style:none;cursor:pointer}.rules-bridge>summary::-webkit-details-marker{display:none}.rules-bridge>summary:after{content:"▸";margin-left:auto;color:var(--accent);font-weight:700;transition:transform .15s}.rules-bridge[open]>summary:after{transform:rotate(90deg)}.rules-bridge>summary:hover{color:var(--text)}.rules-bridge>summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius)}.rules-bridge-summary{color:var(--text-muted)}.rules-bridge-summary strong{color:var(--text)}.rules-bridge-group{padding:0 12px 10px}.rules-bridge-heading{display:flex;align-items:center;gap:8px;margin:2px 0 4px;color:var(--text-muted);font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.rules-bridge-group ul{display:flex;flex-direction:column;gap:3px;margin:0;padding-left:28px}.bridge-mark{display:inline-grid;flex:none;place-items:center;width:20px;height:20px;border-radius:50%;color:var(--surface);font-size:.78rem;font-weight:800;letter-spacing:0}.bridge-mark-same{background:var(--win)}.bridge-mark-diff{background:var(--accent)}.bridge-mark-watch{background:var(--danger)}.umpire-line{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px;padding:8px 12px;border-radius:var(--radius);background:var(--surface-2);font-size:.9rem}.umpire-latest{margin:0;color:var(--text)}.umpire-label{color:var(--text-muted)}.umpire-log{max-height:11rem;margin:0;padding:0;overflow-y:auto;list-style:none;font-size:.85rem;font-variant-numeric:tabular-nums}.umpire-entry{display:grid;grid-template-columns:2.2em 1fr;gap:6px;padding:3px 0;border-bottom:1px solid var(--border)}.umpire-entry-aside{color:var(--text-muted)}.umpire-number{color:var(--text-muted);text-align:right}.game-bughouse{grid-template-rows:auto minmax(0,1fr)}.game-bughouse>.board-column{grid-row:1 / span 2}.game-bughouse>.bughouse-partner{grid-column:2;grid-row:1}.game-bughouse>.game-panel{grid-column:2;grid-row:2}.bughouse-partner{display:flex;flex-direction:column;gap:6px;min-width:0;padding:8px 12px 12px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow)}.bughouse-partner.active{border-color:var(--accent)}.bughouse-partner-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:30px}.bughouse-partner-body{display:flex;flex-direction:column;gap:6px}.bughouse-partner-board{position:relative;width:min(100%,calc(var(--board-size) * .44));margin:0 auto}.bughouse-enlarge{display:none}.bughouse-partner .player-bar{padding-block:4px}.bughouse-talk{display:flex;flex-direction:column;gap:6px;padding-top:6px;border-top:1px solid var(--border)}.talk-chips{display:flex;flex-direction:column;gap:6px}.talk-toggle{display:none}@media(max-width:860px){.talk-toggle{display:inline-flex;align-self:flex-start}.talk-chips:not(.open){display:none}}.talk-log .talk-fresh{padding:2px 8px;border-radius:var(--radius-sm);background:var(--accent-soft)}.move-board{margin-right:3px;color:var(--text-muted);font-size:.75em;font-weight:600}.talk-log{display:flex;flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;font-size:.9rem}.talk-from{font-weight:600}.talk-empty{color:var(--text-muted)}.talk-row{display:flex;align-items:center;gap:8px}.talk-label{flex:none;width:76px;color:var(--text-muted);font-size:.85rem}.talk-row .option-chips{flex-wrap:nowrap;gap:4px}.option-chip.talk-piece{min-width:0;min-height:32px;padding:1px}.talk-piece svg{width:26px;height:26px}.talk-calls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.talk-calls .option-chip{min-width:0;min-height:34px;padding:4px 6px;font-size:.8rem;line-height:1.2}@media(max-width:860px){.game-bughouse{grid-template-rows:none}.game-bughouse>.board-column,.game-bughouse>.bughouse-partner,.game-bughouse>.game-panel{grid-row:auto;grid-column:auto}.game-bughouse>.bughouse-partner{order:-1}.bughouse-enlarge{display:inline-flex}.bughouse-partner:not(.bughouse-partner-large) .bughouse-partner-body{display:grid;grid-template-columns:42% minmax(0,1fr);grid-template-areas:"board top" "board bottom";gap:6px 10px}.bughouse-partner:not(.bughouse-partner-large) .bughouse-partner-top{grid-area:top}.bughouse-partner:not(.bughouse-partner-large) .bughouse-partner-bottom{grid-area:bottom;align-self:end}.bughouse-partner:not(.bughouse-partner-large) .bughouse-partner-board{grid-area:board;width:100%}.bughouse-partner-large .bughouse-partner-board{width:100%}}.game-bughouse>.game-panel>*{flex-shrink:0}@media(min-width:861px){.game-bughouse>.game-panel{contain:none;overflow:visible}}.game-bughouse>.game-panel>.panel-moves{max-height:180px}@media(max-width:860px){.bughouse-partner:not(.bughouse-partner-large) .player-tag,.bughouse-partner:not(.bughouse-partner-large) .turn-badge{display:none}}.game.game-fullscreen.game-bughouse{--bughouse-partner-width: 320px;--board-size: min( 100vw - 2 * var(--page-gutter) - var(--fullscreen-side) - var(--bughouse-partner-width) - 2 * var(--column-gap), (100dvh - 2 * var(--fullscreen-pad)) * var(--board-aspect) )}.game-fullscreen.game-bughouse>.board-column{margin:auto 0 auto auto}.game-fullscreen.game-bughouse>.bughouse-partner{flex:none;width:var(--bughouse-partner-width);margin:auto auto auto var(--column-gap)}.game-fullscreen.game-bughouse .bughouse-partner-board{width:100%}@media(max-aspect-ratio:5 / 4){.game.game-fullscreen.game-bughouse{--fullscreen-bars: calc(288px + 44vw) ;--board-size: min( 100vw - 2 * var(--page-gutter), (100dvh - var(--fullscreen-bars) - var(--fullscreen-top) - var(--fullscreen-pad)) * var(--board-aspect) );flex-direction:column;align-items:center;gap:8px}.game-fullscreen.game-bughouse>.board-column{margin:0}.game-fullscreen.game-bughouse>.bughouse-partner{order:-1;width:min(100%,520px);margin:0}}.board-zones{position:absolute;inset:0;z-index:1;width:100%;height:100%;pointer-events:none}.board-zones-hill rect{fill:#7a523014;stroke:var(--accent);stroke-width:3px;stroke-opacity:.75;vector-effect:non-scaling-stroke}.board-zones-centre rect{stroke:#7a5230;stroke-opacity:.9}.board-zones-home rect{fill:#7a523014;stroke:#7a5230;stroke-width:3px;stroke-opacity:.85;vector-effect:non-scaling-stroke}.board-zones-corners path{stroke-width:3px;vector-effect:non-scaling-stroke;stroke-linejoin:round}.board-zones-corners .white{fill:#ffffff47;stroke:#fbf7f0}.board-zones-corners .black{fill:#1c181433;stroke:#1c1814}.board-zones-goal .light{fill:#fbf8f3}.board-zones-goal .dark{fill:#2b2520}.check-marks{display:inline-flex;flex:none;gap:3px;margin-right:6px;vertical-align:middle}.check-mark{width:10px;height:10px;border:1.5px solid var(--danger);border-radius:50%}.check-mark.given{background:var(--danger)}.board-completechess{--board-dark: var(--board-light);--board-notation-on-dark: var(--board-notation-on-light);--board-grid: rgb(90 58 34 / .35)}:where([data-theme=dark]) .board-completechess{--board-grid: rgb(30 18 8 / .45)}.board-tamerlane{--board-dark: var(--board-light);--board-notation-on-dark: var(--board-notation-on-light);--board-grid: rgb(90 58 34 / .35);--tamerlane-frame: #5a3a22;box-shadow:none;border-radius:0}:where([data-theme=dark]) .board-tamerlane{--tamerlane-frame: #3f2816;--board-grid: rgb(30 18 8 / .45);box-shadow:none}.board-outline{position:absolute;inset:0;z-index:1;width:100%;height:100%;pointer-events:none}.board-outline rect{fill:none;stroke:var(--tamerlane-frame, #5a3a22);stroke-width:3px;vector-effect:non-scaling-stroke}.board-coordinates{position:absolute;inset:0;z-index:1;pointer-events:none}.board-coordinate{position:absolute;color:var(--board-notation-on-light);font-size:clamp(9px,1.5cqi,13px);font-weight:700;line-height:1;user-select:none}.board-coordinate-file{transform:translate(calc(-100% - 3px),-2px)}.board-coordinate-rank{transform:translate(3px,2px)}.rule-cell-off{background:var(--surface);box-shadow:none}.rule-cell-citadel{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 45 45'%3E%3Cg transform='translate(22 21) scale(0.55)'%3E%3Cpath d='M12 38V17h5v4h4v-4h3v4h4v-4h5v21z' fill='none' stroke='%237a5230' stroke-width='3' stroke-linejoin='round' opacity='0.7'/%3E%3Cpath d='M20 38v-7a2.5 2.5 0 0 1 5 0v7' fill='none' stroke='%237a5230' stroke-width='3' opacity='0.7'/%3E%3C/g%3E%3C/svg%3E");box-shadow:inset 0 0 0 2px var(--tamerlane-frame, #5a3a22)}.game-alice{grid-template-columns:minmax(0,1fr) var(--panel-width)}.alice-boards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.alice-board{display:flex;flex-direction:column;gap:4px;min-width:0}.alice-board-label{text-align:center}.alice-board-frame{position:relative;width:100%}@media(max-width:860px){.game-alice{grid-template-columns:minmax(0,1fr)}.alice-boards{grid-template-columns:minmax(0,1fr);gap:8px}.alice-board-frame{width:min(100%,calc((100dvh - 250px)/2));margin:0 auto}}.piece-arrive{width:100%;height:100%;animation:piece-arrive .26s ease-out both}.piece-leave{position:absolute;inset:0;z-index:1;pointer-events:none;animation:piece-leave .26s ease-in both}.piece-frozen svg,.piece-frozen img{filter:grayscale(.6) sepia(.2) hue-rotate(170deg) saturate(2.2) brightness(1.02);opacity:.85}.piece-frozen{width:100%;height:100%}.frost-badge{position:absolute;top:2%;right:2%;z-index:2;width:34%;height:34%;pointer-events:none}.frost-badge circle{fill:var(--board-frost-badge);stroke:var(--board-frost-ink);stroke-width:1.4}.frost-badge path{fill:none;stroke:var(--board-frost-ink);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.debt-badge{position:absolute;top:2%;left:2%;z-index:2;width:40%;height:40%;pointer-events:none;filter:drop-shadow(0 1px 1.5px rgb(0 0 0 / .35))}.debt-badge circle{fill:var(--board-debt-badge);stroke:var(--board-debt-ink);stroke-width:1.2}.debt-badge text{fill:var(--board-debt-ink);font-family:var(--font-ui, system-ui, sans-serif);font-size:13px;font-weight:800}.immobilizer-reach{position:absolute;inset:0;background:var(--board-reach);pointer-events:none}.piece-leave svg{width:100%;height:100%}@keyframes piece-arrive{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:none}}@keyframes piece-leave{0%{opacity:1}to{opacity:0;transform:scale(.8)}}@media(prefers-reduced-motion:reduce){.piece-arrive{animation:none}.piece-leave{display:none}}.game-raum{grid-template-columns:minmax(0,1fr) var(--panel-width)}.raum-board-wrap{display:flex;flex-direction:column;gap:6px}.raum-board{overflow:visible;border-radius:0;box-shadow:none}.raum-svg{display:block;width:100%;height:auto;max-height:calc(100dvh - 240px);overflow:visible;user-select:none;-webkit-user-select:none;touch-action:pan-y}.raum-cube .raum-svg{max-height:calc(100dvh - 290px);overflow:hidden;touch-action:none;cursor:grab}.raum-board:focus-visible{outline:none}.raum-frame{fill:none;stroke:var(--board-dark);stroke-width:.6;stroke-linejoin:round;filter:drop-shadow(0 1px 1.5px rgb(0 0 0 / .18))}.raum-cell-light{fill:var(--board-light);stroke:var(--board-light);stroke-width:.15}.raum-cell-dark{fill:var(--board-dark);stroke:var(--board-dark);stroke-width:.15}.raum-cube .raum-cell-light,.raum-cube .raum-cell-dark{fill-opacity:var(--raum-cell-opacity, .72)}.raum-level-label{font-family:var(--font-ui);font-weight:700;fill:var(--text-muted);dominant-baseline:central;pointer-events:none}.raum-overlays,.raum-notation,.raum-pieces,.raum-ghosts,.raum-dragged{pointer-events:none}.raum-pieces .raum-standing{pointer-events:visiblePainted}.raum-last-move{fill:var(--board-last-move)}.raum-selected{fill:var(--board-selected)}.raum-drop-target{fill:none;stroke:var(--board-selected);stroke-width:1.2;stroke-linejoin:round}.raum-threat{fill:none;stroke:var(--danger);stroke-width:1}.raum-cursor{fill:none;stroke:var(--accent);stroke-width:1;stroke-linejoin:round}.raum-shaft{fill:none;stroke:var(--board-shaft);stroke-width:.8;stroke-linejoin:round}.raum-move-dot{fill:var(--board-hint)}.raum-goal{fill:var(--board-goal);stroke:var(--board-goal)}.raum-capture-ring{fill:none;stroke:var(--board-hint)}.raum-notation text{font-family:var(--font-ui);font-weight:700}.raum-notation-on-light{fill:var(--board-notation-on-light)}.raum-notation-on-dark{fill:var(--board-notation-on-dark)}.raum-glow{flood-color:var(--board-piece-glow)}.raum-hint{fill:none;stroke:var(--board-hint-ring);stroke-width:1.1;stroke-linejoin:round}.raum-wrong{fill:var(--board-wrong)}.raum-arrows{pointer-events:none}.raum-plate{transition:opacity .16s ease-out}.raum-plate-faded{opacity:.3}.raum-cube-views{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 10px}.raum-cube-hint{color:var(--text-muted);font-size:.85rem}.raum-sliders{display:flex;flex-direction:column;gap:6px;margin-top:4px}.raum-slider{display:grid;grid-template-columns:1fr;gap:2px;font-size:.85rem;color:var(--text-muted)}.raum-slider input{width:100%;accent-color:var(--accent)}.raum-slider-value{font-variant-numeric:tabular-nums}@media(max-width:860px){.game-raum{grid-template-columns:minmax(0,1fr)}}.board-banqi{--board-light: #ecd09a;--board-dark: #e0c084;--board-notation-on-light: #6b4524;--board-notation-on-dark: #6b4524;box-shadow:0 0 0 4px #6b4524,var(--shadow)}:where([data-theme=dark]) .board-banqi{--board-light: #cfae78;--board-dark: #c2a06b;--board-notation-on-light: #3e2610;--board-notation-on-dark: #3e2610;box-shadow:0 0 0 4px #4a2f16,var(--shadow)}.avatar-first,.avatar-second{border:1px solid #7a5634;background:#b98a55;color:#fff8ee}.turn-mark{position:absolute;top:3%;right:3%;z-index:2;min-width:26%;height:26%;padding:0 3%;border-radius:999px;background:var(--board-turn-badge);color:var(--board-turn-badge-ink);font:700 clamp(8px,1.5vmin,12px) / 1 var(--font-ui);display:grid;place-items:center;pointer-events:none;opacity:.62}.turn-mark-latest{min-width:30%;height:30%;opacity:1;box-shadow:0 0 0 1.5px var(--board-turn-badge-ink)}.turn-mark-own{background:var(--board-turn-own-badge);color:#fff;opacity:.9;box-shadow:0 0 0 1.5px #fff}.turn-progress{display:flex;flex-wrap:wrap;gap:2px 8px;align-items:center;min-width:0}.turn-dots{display:inline-flex;flex-wrap:wrap;gap:4px;padding:3px 0}.turn-dot{box-sizing:border-box;width:8px;height:8px;border:1.5px solid var(--border);border-radius:50%}.turn-dot-done{border-color:var(--accent);background:var(--accent)}.turn-dot-now{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 2px var(--accent-soft)}.turn-note{color:var(--text-muted);font-size:.8rem}.move-list-turns .move-row{grid-template-columns:2.6em minmax(0,1fr)}.move-turn{display:flex;flex-wrap:wrap;gap:2px 2px;min-width:0}.move-forfeited{padding:0 6px;color:var(--text-muted);font-size:.85em;font-style:italic}.move-pair-slash{gap:0}.move-slash{color:var(--text-muted)}@media(max-width:860px){.move-list-turns .move-turn{flex-wrap:nowrap}}
