:root{color:#1f2937;--bg-top:#eef2ff;--bg-mid:#f8fafc;--bg-bottom:#f4f6fb;--text-primary:#1f2937;--text-title:#0f172a;--text-secondary:#334155;--text-muted:#64748b;--text-disabled:#6b7280;--surface:#fff;--surface-soft:#f8fafc;--surface-muted:#f1f5f9;--border:#e5e7eb;--border-soft:#e2e8f0;--border-strong:#cbd5e1;--accent:#3b82f6;--accent-ring:#3b82f626;--accent-ring-soft:#3b82f624;--accent-hover:#93c5fd;--status-info:#1d4ed8;--status-fallback:#92400e;--error-fg:#991b1b;--error-bg:#fee2e2;--error-border:#fecaca;--live-badge-bg:#dcfce7;--live-badge-fg:#166534;--planned-badge-bg:#e2e8f0;--planned-badge-fg:#475569;--chess-light:#f4e6cc;--chess-dark:#b78660;--ghost-light:#f8ead2;--ghost-dark:#b78a67;--gomoku-board-light:#d8b67a;--gomoku-board-dark:#c9924b;--gomoku-grid-line:#5a391857;--board-border:#cbd5e1;--board-shadow-1:#0f172a2e;--board-shadow-2:#0f172a1a;--move-last:#facc15bf;--move-target:#22c55ed9;--move-target-soft:#22c55e14;--move-selected:#2563ebe6;--exit-ring:#1e40af73;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}:root[data-theme=forest]{--bg-top:#e5f3e8;--bg-mid:#f4fbf4;--bg-bottom:#edf7ef;--text-primary:#1f2f26;--text-title:#153220;--text-secondary:#2f4c3c;--text-muted:#557064;--surface-soft:#f4faf4;--surface-muted:#e8f3e9;--border:#d6e4d9;--border-soft:#cbe0d0;--border-strong:#b7d0bf;--accent:#2f855a;--accent-ring:#2f855a33;--accent-ring-soft:#2f855a26;--accent-hover:#68d391;--status-info:#276749;--status-fallback:#975a16;--live-badge-bg:#d1fae5;--live-badge-fg:#065f46;--chess-light:#e9dcc3;--chess-dark:#7d9a73;--ghost-light:#e8ddc8;--ghost-dark:#8ca07e}:root[data-theme=midnight]{--bg-top:#0f172a;--bg-mid:#111827;--bg-bottom:#0b1220;--text-primary:#e2e8f0;--text-title:#f8fafc;--text-secondary:#cbd5e1;--text-muted:#93a4bd;--text-disabled:#8ca0bb;--surface:#111c2f;--surface-soft:#162338;--surface-muted:#23324a;--border:#22314a;--border-soft:#2b3f5e;--border-strong:#3d5477;--accent:#60a5fa;--accent-ring:#60a5fa3d;--accent-ring-soft:#60a5fa33;--accent-hover:#93c5fd;--status-info:#93c5fd;--status-fallback:#fbbf24;--error-fg:#fecaca;--error-bg:#7f1d1d4d;--error-border:#f8717199;--live-badge-bg:#10b98138;--live-badge-fg:#a7f3d0;--planned-badge-bg:#94a3b83d;--planned-badge-fg:#cbd5e1;--chess-light:#d3c7b2;--chess-dark:#7f6a57;--ghost-light:#d8cfbe;--ghost-dark:#7d6d5f;--gomoku-board-light:#d4b47f;--gomoku-board-dark:#b98446;--gomoku-grid-line:#49311875;--board-shadow-1:#02061794;--board-shadow-2:#02061757;--move-last:#facc15d6;--move-target:#4ade80eb;--move-target-soft:#4ade801f;--move-selected:#60a5faf0;--exit-ring:#93c5fdb8}:root[data-theme=paper]{--bg-top:#f7f3ea;--bg-mid:#fbf8f1;--bg-bottom:#f2ece2;--text-primary:#2f2a25;--text-title:#1f1a15;--text-secondary:#54483e;--text-muted:#726357;--surface:#fffef9;--surface-soft:#f8f2e7;--surface-muted:#f1eadf;--border:#dbcdb9;--border-soft:#d1c2ad;--border-strong:#bfae95;--accent:#a85523;--accent-ring:#a8552338;--accent-ring-soft:#a8552329;--accent-hover:#d97745;--status-info:#9a3412;--status-fallback:#7c2d12;--planned-badge-bg:#e7dccd;--planned-badge-fg:#6b5a49;--chess-light:#efe1ca;--chess-dark:#b9956d;--ghost-light:#f3e7d2;--ghost-dark:#ba9a77}:root[data-theme=ocean]{--bg-top:#d9f3ff;--bg-mid:#eaf8ff;--bg-bottom:#e1f3fd;--text-primary:#0f2940;--text-title:#082033;--text-secondary:#1d4a67;--text-muted:#3f6f8e;--surface:#f9fdff;--surface-soft:#eef8fc;--surface-muted:#e4f1f8;--border:#c4deed;--border-soft:#b5d3e5;--border-strong:#8eb7ce;--accent:#0f7bb9;--accent-ring:#0f7bb933;--accent-ring-soft:#0f7bb929;--accent-hover:#37a7e8;--status-info:#0b5f91;--status-fallback:#9a580c}:root[data-theme=sunset]{--bg-top:#ffe7db;--bg-mid:#fff1e8;--bg-bottom:#fde8dc;--text-primary:#3c1f1a;--text-title:#29120f;--text-secondary:#70342b;--text-muted:#8f5348;--surface:#fffaf6;--surface-soft:#fff2ea;--surface-muted:#fde8dc;--border:#f0cabb;--border-soft:#e7baa8;--border-strong:#dd9f88;--accent:#d9480f;--accent-ring:#d9480f33;--accent-ring-soft:#d9480f26;--accent-hover:#f97316;--status-info:#c2410c;--status-fallback:#7c2d12}:root[data-theme=sakura]{--bg-top:#ffeaf2;--bg-mid:#fff4f8;--bg-bottom:#fdebf3;--text-primary:#3a2132;--text-title:#251120;--text-secondary:#6b3a59;--text-muted:#8a5a76;--surface:#fffafc;--surface-soft:#fff0f6;--surface-muted:#fce7ef;--border:#eec8d8;--border-soft:#e4b8cb;--border-strong:#d999b8;--accent:#db2777;--accent-ring:#db277730;--accent-ring-soft:#db277726;--accent-hover:#f472b6;--status-info:#be185d;--status-fallback:#9d174d}:root[data-theme=cyber]{--bg-top:#081019;--bg-mid:#0a1320;--bg-bottom:#040b13;--text-primary:#d7efff;--text-title:#f0fbff;--text-secondary:#93cde9;--text-muted:#69a7c8;--text-disabled:#6287a1;--surface:#0e1928;--surface-soft:#122136;--surface-muted:#172d45;--border:#1d3550;--border-soft:#244462;--border-strong:#2f638e;--accent:#00d4ff;--accent-ring:#00d4ff3d;--accent-ring-soft:#00d4ff33;--accent-hover:#67e8f9;--status-info:#67e8f9;--status-fallback:#fbbf24;--error-fg:#fecaca;--error-bg:#7f1d1d4d;--error-border:#f8717199;--live-badge-bg:#14b8a638;--live-badge-fg:#99f6e4;--planned-badge-bg:#94a3b83d;--planned-badge-fg:#c7d2fe;--board-shadow-1:#02061799;--board-shadow-2:#0206175c}*{box-sizing:border-box}body{color:var(--text-primary);background:radial-gradient(circle at top, var(--bg-top), var(--bg-mid) 45%, var(--bg-bottom) 100%);margin:0;overflow-x:hidden}#root{min-height:100svh}.app{width:min(1360px,100%);min-height:100dvh;padding:10px;padding-bottom:max(10px, env(safe-area-inset-bottom));margin:0 auto}.appLayout{grid-template-columns:74px minmax(0,1fr);align-items:start;gap:12px;min-height:calc(100dvh - 20px);display:grid}.mainPanel{gap:10px;display:grid}.mobileTopBar{justify-content:space-between;align-items:center;gap:10px;min-height:70px;display:none}.mobileTopBar>div:first-child{min-width:0}.mobileTopBar h1{color:var(--text-title);margin:0;font-size:1.35rem;font-weight:800;line-height:1.1}.mobileTopBar p{color:var(--text-muted);margin:4px 0 0;font-size:.92rem}.leftRail{background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 96%, white), var(--surface));border:1px solid color-mix(in srgb, var(--border) 80%, white);border-radius:16px;flex-direction:column;align-items:center;gap:8px;height:calc(100dvh - 20px);padding:8px;display:flex;position:sticky;top:10px;box-shadow:0 14px 30px #0f172a0f}.leftRail,.mobileTopBar,.gamePickerFeatured,.gamePickerCard,.railActionButton,.gamesToggleButton{-webkit-backdrop-filter:none;backdrop-filter:none}.appMark{border-radius:12px;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex;overflow:hidden;box-shadow:inset 0 1px #ffffff59}.appMarkTile{border:1px solid var(--border-strong);width:100%;height:100%;color:var(--accent);letter-spacing:.08em;text-indent:.08em;background:linear-gradient(135deg,#ffffffe6,#f1f5f9e6),linear-gradient(135deg,#3b82f624,#0ea5e929);border-radius:12px;justify-content:center;align-items:center;font-size:.78rem;font-weight:800;display:inline-flex}.railActionButton{border:1px solid var(--border-strong);background:var(--surface);width:58px;min-height:56px;color:var(--text-secondary);cursor:pointer;border-radius:10px;grid-template-rows:auto auto;justify-content:center;align-items:center;gap:2px;padding:8px 6px;font-size:1.08rem;display:grid}.railActionLabel{letter-spacing:.03em;color:var(--text-muted);font-size:.64rem;font-weight:700;line-height:1}.railActionButton:hover{background:var(--surface-soft)}.railActionButton.active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-ring-soft)}.gamesToggleButton{border:1px solid var(--border-strong);background:var(--surface);color:var(--text-secondary);cursor:pointer;border-radius:10px;font-weight:700}.gamesToggleButton:hover{background:var(--surface-soft)}.gamesToggleButton.active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-ring-soft)}.gamesToggleButton.compact{min-height:44px;padding:10px 12px;font-size:.92rem}.themeControl{color:var(--text-secondary);gap:4px;margin-top:0;font-size:.86rem;display:grid}.themeControl select{border:1px solid var(--border-strong);background:var(--surface);color:var(--text-primary);border-radius:10px;padding:8px 10px;font-size:.9rem}.themeControl.mobile{min-width:128px;margin-top:0}.ghostThemePicker{border:1px solid var(--ghost-ui-border,var(--border-soft));background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 94%, white), var(--surface-soft)), var(--ghost-ui-surface,linear-gradient(180deg, color-mix(in srgb, var(--surface) 90%, white), var(--surface-soft)));box-shadow:var(--ghost-ui-shadow-soft,0 12px 24px #0f172a14);border-radius:18px;gap:6px;margin-top:12px;padding:12px;display:grid}.ghostThemePicker span{color:var(--text-secondary);letter-spacing:.11em;text-transform:uppercase;font-size:.74rem;font-weight:900}.ghostThemePicker select{border:1px solid var(--border-strong);background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 96%, white), var(--surface-soft));width:100%;min-height:42px;color:var(--text-primary);border-radius:12px;padding:8px 10px;font-size:.94rem;font-weight:700}.mobileTopActions{align-items:center;gap:8px;display:inline-flex}.panelOverlay{z-index:20;pointer-events:none;position:fixed;inset:0}.panelOverlay.open{pointer-events:auto}.panelBackdrop{appearance:none;opacity:0;background:#0f172a5c;border:none;transition:opacity .14s;position:absolute;inset:0}.panelOverlay.open .panelBackdrop{opacity:1}.sidePanel{background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 96%, white), var(--surface));border:1px solid color-mix(in srgb, var(--border) 78%, white);border-radius:18px;align-content:start;gap:10px;width:min(352px,100vw - 20px);padding:14px;transition:transform .16s;display:grid;position:absolute;top:10px;bottom:10px;left:10px;overflow:auto;transform:translate(-104%);box-shadow:0 26px 60px #0f172a38}.panelOverlay.open .sidePanel{transform:translate(0)}.sidePanelHeader{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.sidePanelHeader h2{color:var(--text-title);margin:0;font-size:1.04rem;font-weight:800}.sidePanelHeader p{color:var(--text-muted);margin:4px 0 0;font-size:.82rem}.appearanceGrid{gap:10px;display:grid}.panelSection{border:1px solid color-mix(in srgb, var(--border-soft) 88%, white);background:color-mix(in srgb, var(--surface-soft) 92%, white);border-radius:13px;gap:8px;padding:10px;display:grid;box-shadow:inset 0 1px #ffffff4d}.panelSection h3{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin:0;font-size:.84rem}.panelControl{margin-top:0}.drawerCloseButton{border:1px solid var(--border-strong);background:var(--surface);color:var(--text-secondary);cursor:pointer;border-radius:10px;padding:7px 10px}.drawerCloseButton:hover{background:var(--surface-soft)}.gameNavList{gap:10px;display:grid}.gameNavItem{border:1px solid color-mix(in srgb, var(--border-soft) 86%, white);text-align:left;background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 94%, white), var(--surface));border-radius:14px;grid-template-columns:minmax(0,1fr) auto;gap:8px 10px;width:100%;padding:12px;display:grid;box-shadow:0 8px 18px #0f172a0a}.gameNavItem.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-ring), 0 10px 22px #0f172a0f}.gameNavItem.launchable:hover:not(:disabled){border-color:var(--accent-hover);transform:translateY(-1px)}.gameNavItem.launchable{cursor:pointer}.gameNavItem.disabled{color:var(--text-disabled);background:var(--surface-soft);cursor:not-allowed}.gameNavCopy{gap:2px;min-width:0;display:grid}.gameNavDescription{color:var(--text-muted);font-size:.8rem;line-height:1.2}.gameNavBadge{place-self:start end}.gameNavName{font-weight:600;line-height:1.2}.badge{border-radius:999px;width:fit-content;padding:3px 10px;font-size:.78rem;display:inline-flex}.badge-live{background:var(--live-badge-bg);color:var(--live-badge-fg)}.badge-planned{background:var(--planned-badge-bg);color:var(--planned-badge-fg)}.gamePanel{background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 96%, white), var(--surface));border:1px solid color-mix(in srgb, var(--border) 84%, white);border-radius:18px;min-width:0;padding:14px;box-shadow:0 18px 42px #0f172a0f}.gamePicker{gap:16px;display:grid}.gamePickerHeader{gap:4px;display:grid}.gamePickerHeader h2{margin:0;font-size:1.45rem;font-weight:800;line-height:1.12}.gamePickerHeader p{color:var(--text-secondary);margin:0;font-size:.98rem;line-height:1.4}.gamePickerFeatured{border:1px solid color-mix(in srgb, var(--border-strong) 84%, white);text-align:left;background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 95%, white), var(--surface)), var(--surface-soft);cursor:pointer;border-radius:18px;gap:6px;padding:16px;display:grid;box-shadow:0 12px 28px #0f172a14}.gamePickerFeatured:hover{border-color:var(--accent-hover)}.gamePickerFeaturedEyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-size:.72rem;font-weight:800}.gamePickerFeaturedName{color:var(--text-title);font-size:1.18rem;font-weight:800}.gamePickerFeaturedDescription{color:var(--text-secondary);line-height:1.4}.gamePickerFeaturedAction{background:var(--accent);color:#fff;border-radius:999px;justify-self:start;margin-top:2px;padding:6px 10px;font-size:.82rem;font-weight:800}.gamePickerGrid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.gamePickerCard{border:1px solid color-mix(in srgb, var(--border-soft) 88%, white);background:linear-gradient(180deg, color-mix(in srgb, var(--surface-soft) 94%, white), var(--surface-soft));text-align:left;cursor:pointer;border-radius:14px;gap:8px;padding:14px;display:grid;box-shadow:0 6px 16px #0f172a08}.gamePickerCard:hover{border-color:var(--accent-hover)}.gamePickerName{font-size:1rem;font-weight:700;line-height:1.2}.gamePickerDescription{color:var(--text-secondary);font-size:.95rem;line-height:1.45}.chessWrap,.ghostWrap,.xiangqiWrap{gap:12px;min-width:0;display:grid}.chessLayout,.ghostLayout,.xiangqiLayout{min-width:0;box-shadow:none;background:0 0;border:0;border-radius:0;grid-template-columns:minmax(320px,388px) minmax(0,1fr);align-items:start;gap:18px;padding:0;display:grid;position:relative}.ghostLayout--online{grid-template-columns:minmax(336px,400px) minmax(0,1fr)}.chessBoardColumn,.ghostBoardColumn,.xiangqiBoardColumn{align-content:start;justify-items:center;gap:12px;min-width:0;display:grid}.ghostBoardColumn{justify-items:center;width:100%;padding:4px 0;position:relative}.ghostControlColumn{width:100%;min-width:0;max-width:420px;max-height:calc(100dvh - 104px);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;border-radius:0;align-self:start;padding:0;position:sticky;top:16px;overflow:auto}.ghostControlPanel{border:1px solid color-mix(in srgb, var(--border) 82%, transparent);background:var(--ghost-ui-surface,linear-gradient(180deg, color-mix(in srgb, var(--surface) 90%, white), var(--surface)));box-shadow:var(--ghost-ui-shadow-soft,0 14px 30px #0f172a14);border-radius:26px;gap:14px;padding:18px;display:grid}.ghostControlPanel,.ghostEntryDialog,.ghostBoardPhaseCard,.ghostBoardHudCard{position:relative;overflow:clip}.ghostControlPanel:before,.ghostEntryDialog:before,.ghostBoardPhaseCard:before,.ghostBoardHudCard:before{content:"";pointer-events:none;opacity:.8;background:radial-gradient(circle at 0 0,#ffffff29,#0000 24%),radial-gradient(circle at 100% 0,#ffffff14,#0000 18%);position:absolute;inset:0}.ghost-theme-tabletop .ghostControlPanel,.ghost-theme-tabletop .ghostEntryDialog,.ghost-theme-tabletop .ghostBoardPhaseCard{--ghost-ui-surface:linear-gradient(180deg, #fff8ed, color-mix(in srgb, var(--surface) 94%, #f6ead6));--ghost-ui-border:color-mix(in srgb, #d9b98d 62%, var(--border));--ghost-ui-shadow:0 18px 34px #784e261a;--ghost-ui-shadow-soft:0 12px 24px #784e2614}.ghost-theme-nintendo .ghostControlPanel,.ghost-theme-nintendo .ghostEntryDialog,.ghost-theme-nintendo .ghostBoardPhaseCard{--ghost-ui-surface:linear-gradient(180deg, #fff, color-mix(in srgb, var(--surface) 92%, #eef5ff));--ghost-ui-border:color-mix(in srgb, #8ec1ff 48%, var(--border));--ghost-ui-shadow:0 18px 34px #3c579e1f;--ghost-ui-shadow-soft:0 12px 24px #3c579e14}.ghost-theme-strategy .ghostControlPanel,.ghost-theme-strategy .ghostEntryDialog,.ghost-theme-strategy .ghostBoardPhaseCard{--ghost-ui-surface:linear-gradient(180deg, #080f1ef5, #0c1426fa);--ghost-ui-border:#6fa5ff42;--ghost-ui-shadow:0 24px 42px #030a1957;--ghost-ui-shadow-soft:0 16px 28px #030a1938}.ghost-theme-spooky .ghostControlPanel,.ghost-theme-spooky .ghostEntryDialog,.ghost-theme-spooky .ghostBoardPhaseCard{--ghost-ui-surface:linear-gradient(180deg, #161221f5, #1d162efa);--ghost-ui-border:#c3a9ff38;--ghost-ui-shadow:0 22px 40px #0c081c4d;--ghost-ui-shadow-soft:0 16px 28px #0c081c33}.ghostControlPanel .ghostUnifiedHudHeaderRow{align-items:flex-start;padding-bottom:4px}.ghostControlPanel .ghostUnifiedHudHeaderRow button{align-self:flex-start}.ghostButton{font:inherit;border:1px solid var(--border-strong);cursor:pointer;touch-action:manipulation;border-radius:16px;min-height:42px;padding:10px 14px;font-weight:700;line-height:1;transition:transform .12s,background-color .12s,border-color .12s,box-shadow .12s,color .12s,opacity .12s}.ghostButton:hover:not(:disabled){transform:translateY(-1px)}.ghostButton:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ghostButton:disabled{cursor:not-allowed;opacity:.62}.ghostButtonPrimary{background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 92%, white), var(--accent));color:#fff;box-shadow:0 12px 22px var(--accent-ring), inset 0 1px 0 #fff3;border-color:#0000}.ghostButtonPrimary:hover:not(:disabled){background:linear-gradient(180deg, color-mix(in srgb, var(--accent-hover) 96%, white), var(--accent-hover));transform:translateY(-1px)}.ghostButtonSecondary{background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 96%, white), var(--surface-soft));color:var(--text-secondary);box-shadow:0 8px 18px #0f172a14}.ghostButtonSecondary:hover:not(:disabled){background:color-mix(in srgb, var(--surface-soft) 88%, white);transform:translateY(-1px)}.ghostHeaderBar{background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 92%, white), var(--surface-soft));border:1px solid color-mix(in srgb, var(--border-soft) 82%, white);border-radius:18px;padding:8px 10px 10px}.ghostLegend{background:linear-gradient(180deg, color-mix(in srgb, var(--surface-soft) 92%, white), var(--surface-soft));border:1px solid color-mix(in srgb, var(--border-soft) 82%, white);border-radius:16px;flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px;padding:10px 12px;display:flex}.legendItem{background:color-mix(in srgb, var(--surface) 84%, transparent);border-radius:999px;align-items:center;gap:8px;padding:4px 8px;display:inline-flex}.ghostLegend .ghostToken{flex:none;width:1.85rem;height:1.85rem}.ghostSettingsShell{gap:10px;display:grid}.ghostSettingsButton{width:100%}.ghostSettingsPanel{border:1px solid color-mix(in srgb, var(--border) 82%, transparent);background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 96%, white), var(--surface-soft));border-radius:18px;gap:12px;padding:10px 12px;display:grid}details.ghostSettingsPanel>summary{cursor:pointer;font:inherit;justify-content:space-between;align-items:center;gap:10px;font-weight:800;list-style:none;display:flex}details.ghostSettingsPanel>summary::-webkit-details-marker{display:none}details.ghostSettingsPanel>summary:after{content:"▾";color:var(--text-muted);font-size:.9rem;transition:transform .18s}details.ghostSettingsPanel[open]>summary:after{transform:rotate(180deg)}details.ghostSettingsPanel:not([open]) .ghostSettingsGrid{display:none}details.ghostSettingsPanel[open]{padding-bottom:14px}.ghostSettingsPanel:focus-visible,.ghostReplayPanel:focus-visible,.ghostBoard:focus-visible{outline:3px solid var(--accent-ring);outline-offset:3px}.ghostSettingsHeader{justify-content:space-between;align-items:center;gap:10px;display:flex}.ghostTextButton{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;font-weight:800}.ghostButton,.ghostTextButton,.ghostSettingsGrid select,.ghostReplayControls .ghostButton,.ghostEscapeAction,.ghostSquare,.ghostBoardCell{min-width:44px;min-height:44px}.ghostSettingsGrid{gap:10px;display:grid}.ghostSettingsGrid label{gap:6px;font-size:.92rem;display:grid}.ghostSettingsGrid select{width:100%}.ghostToken{vertical-align:middle;place-items:center;display:inline-grid;position:relative}.ghostToken.boardPiece{aspect-ratio:1;width:min(82%,4.2rem);margin:0;position:relative;inset:auto}.ghostSquare{flex-direction:column;justify-content:center;align-items:center;gap:.12rem;display:flex}.ghostModeActions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.ghostModeButton{width:100%;transition:transform .16s,box-shadow .16s,background .16s,filter .16s}.ghostModeButton--compact{min-height:38px;padding:8px 12px;font-size:.92rem}.ghostModeButton:hover:not(:disabled){transform:translateY(-1px)}.ghostModeButton:active:not(:disabled){transform:translateY(0)}.ghostControlPanel .ghostBoardHudCard,.ghostControlPanel .ghostOnlineBody{box-shadow:none}.ghostControlPanel .ghostOnlineBody,.ghostControlPanel .ghostBoardHudCard{width:100%}.ghostControlPanel .ghostBoardPhaseCard,.ghostControlPanel .ghostOnlineBody{max-height:none}.chessHeader,.ghostHeaderBar,.xiangqiHeaderBar{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px 12px;display:grid}.ghostHeaderBar{padding:8px 4px 12px}.ghostHeaderBar .ghostButton{align-self:start}.chessHeaderCopy,.ghostHeaderRow>div{gap:4px;min-width:0;display:grid}.chessHeaderCopy h2,.ghostHeaderRow h2{margin:0;font-size:1.3rem}.chessHeaderCopy p,.ghostHeaderRow p{color:var(--text-secondary);margin:0;font-size:.9rem}.difficultyRow{color:var(--text-secondary);justify-self:end;gap:6px;min-width:132px;font-size:.9rem;display:grid}.difficultyRow select{border:1px solid var(--border-strong);background:var(--surface);color:var(--text-primary);border-radius:10px;padding:8px 10px;font-size:.95rem}.difficultyRow select:disabled{border-color:var(--border);background:var(--surface-muted);color:var(--text-disabled);cursor:not-allowed}.difficultyHelp{color:var(--text-muted);margin:-6px 0 0;font-size:.82rem}.difficultyHelp.locked{color:var(--text-secondary)}.ghostDifficultySummary{text-align:right;align-content:start;justify-self:end;gap:2px;min-width:138px;max-width:180px;display:grid}.ghostDifficultySummaryLabel{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;font-size:.76rem;font-weight:700}.ghostDifficultySummaryValue{color:var(--text-title);font-size:.98rem;font-weight:700}.ghostDifficultySummaryNote{color:var(--text-muted);font-size:.8rem;line-height:1.35}.ghostDifficultySummaryNote.locked{color:var(--text-secondary)}.statusGrid{border:1px solid var(--border-soft);background:var(--surface-soft);border-radius:12px;gap:6px;padding:12px;display:grid}.statusLine,.thinkingLine{margin:0}.statusEngine{color:var(--status-info);font-weight:600}.statusEngine.fallback{color:var(--status-fallback)}.info{color:var(--status-info)}.statusPlaceholder{visibility:hidden}.error{color:var(--error-fg);background:var(--error-bg);border:1px solid var(--error-border);border-radius:8px;margin:0;padding:8px}.messageSlot{min-height:44px}.errorHidden{visibility:hidden}.boardShell,.ghostBoardShell{justify-content:flex-end;width:100%;display:flex;position:relative;overflow:visible}.xiangqiBoardShell{justify-content:center}.gameEndOverlay{z-index:6;-webkit-backdrop-filter:blur(1.25px);backdrop-filter:blur(1.25px);pointer-events:none;background:linear-gradient(#0f172a29,#0f172a57);justify-content:center;align-items:center;padding:14px;display:flex;position:absolute;inset:0}.gameEndOverlay.win{background:linear-gradient(#16a34a24,#0f172a47)}.gameEndOverlay.lose{background:linear-gradient(#dc262624,#0f172a47)}.gameEndOverlay.draw{background:linear-gradient(#64748b24,#0f172a3d)}.gameEndCard{pointer-events:auto;border:1px solid var(--border-strong);background:var(--surface);text-align:center;border-radius:18px;gap:10px;width:min(100%,320px);padding:16px 18px 18px;display:grid;box-shadow:0 18px 36px #0f172a47}.gameEndCard.win{border-color:#22c55ecc}.gameEndCard.lose{border-color:#f87171d1}.gameEndCard.draw{border-color:var(--border-strong)}.gameEndKicker{color:var(--text-muted);letter-spacing:.14em;text-transform:uppercase;margin:0;font-size:.74rem;font-weight:800}.gameEndCard h3{color:var(--text-title);margin:0;font-size:1.45rem}.gameEndReason{color:var(--text-secondary);margin:0;line-height:1.45}.gameEndAction{border:1px solid var(--border-strong);background:var(--accent);color:#fff;cursor:pointer;border-radius:12px;justify-self:center;min-width:170px;padding:10px 16px;font-weight:700}.gameEndAction:hover{background:var(--accent-hover)}.gameEndAction:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.board{--chess-board-light:var(--chess-light);--chess-board-dark:var(--chess-dark);aspect-ratio:1;border:1px solid var(--board-border);width:100%;max-width:min(640px,100dvh - 190px);box-shadow:0 10px 25px var(--board-shadow-1), 0 3px 8px var(--board-shadow-2);border-radius:16px;grid-template-rows:repeat(8,1fr);grid-template-columns:repeat(8,1fr);display:grid;overflow:hidden}.board.xiangqiBoard{--xiangqi-board-frame-top:#8f5f3b;--xiangqi-board-frame-bottom:#5d341b;--xiangqi-frame-highlight:#ffffff24;--xiangqi-board-border:#422714e6;--xiangqi-board-shadow:0 14px 28px #1e120a38, 0 4px 10px #1e120a24, inset 0 1px 0 #ffffff1f;--xiangqi-board-fill-top:#f7ebd2;--xiangqi-board-fill-middle:#f2dfbc;--xiangqi-board-fill-bottom:#ecd4aa;--xiangqi-board-glow:#fffaf066;--xiangqi-board-glow-faint:#fffaf01f;--xiangqi-line:#4b2d17;--xiangqi-palace-line:#4b2d17;--xiangqi-river-fill-top:#f7ecd9;--xiangqi-river-fill-bottom:#f2e4cf;--xiangqi-river-text:#4a2b16;--xiangqi-marker-color:#3f2612d1;--xiangqi-marker-soldier-color:#3f2612a3;--xiangqi-piece-red:#a61b14;--xiangqi-piece-black:#1f2530;--xiangqi-piece-border-red:#a61b1457;--xiangqi-piece-border-black:#1f25303d;--xiangqi-piece-surface-top:#fffdf8;--xiangqi-piece-surface-middle:#f7ecd9;--xiangqi-piece-surface-bottom:#eadfc8;--xiangqi-piece-border:#5c3f1f3d;--xiangqi-piece-shadow:0 2px 5px #36221129, 0 0 0 1px #ffffff5c inset, 0 -1px 0 #704e2614 inset;--xiangqi-piece-text-shadow:0 1px 0 #ffffff94;--xiangqi-cell-hover:#fff9ee24;--xiangqi-board-pad:clamp(16px, 4.4%, 26px);--xiangqi-piece-scale:.8;--move-target:#22c55ed9;--move-target-soft:#22c55e14;--move-selected:#2563ebe6;--move-last:#facc15bf;isolation:isolate;aspect-ratio:9/10;background:radial-gradient(circle at 50% 12%, var(--xiangqi-frame-highlight), transparent 30%), linear-gradient(145deg, var(--xiangqi-board-frame-top), var(--xiangqi-board-frame-bottom));border-color:var(--xiangqi-board-border);max-width:min(640px,90dvh - 171px);box-shadow:var(--xiangqi-board-shadow);display:block;position:relative}.xiangqiBoardSurface{inset:var(--xiangqi-board-pad);z-index:1;position:absolute;overflow:visible}.board.xiangqiBoard.xiangqiBoardTheme-walnut{--xiangqi-board-frame-top:#4d2c19;--xiangqi-board-frame-bottom:#29160d;--xiangqi-frame-highlight:#ffe0bf14;--xiangqi-board-border:#1c100af5;--xiangqi-board-shadow:0 16px 32px #11090457, 0 5px 12px #11090438, inset 0 1px 0 #ffffff14;--xiangqi-board-fill-top:#efe0c0;--xiangqi-board-fill-middle:#e2cca8;--xiangqi-board-fill-bottom:#d7bc8e;--xiangqi-board-glow:#ffefd73d;--xiangqi-board-glow-faint:#ffefd70f;--xiangqi-line:#6d4526;--xiangqi-palace-line:#7a5230;--xiangqi-river-fill-top:#ead8bd;--xiangqi-river-fill-bottom:#dcc39a;--xiangqi-river-text:#5a3720;--xiangqi-marker-color:#51331cdb;--xiangqi-marker-soldier-color:#51331cad;--xiangqi-piece-red:#982017;--xiangqi-piece-black:#20262f;--xiangqi-piece-border-red:#9820176b;--xiangqi-piece-border-black:#20262f4d;--xiangqi-piece-surface-top:#fff8ee;--xiangqi-piece-surface-middle:#f5e3cc;--xiangqi-piece-surface-bottom:#e2cdb2;--xiangqi-piece-border:#5d402847;--xiangqi-piece-shadow:0 3px 7px #120a0538, 0 0 0 1px #ffffff47 inset, 0 -1px 0 #6e4c3014 inset;--xiangqi-piece-text-shadow:0 1px 0 #ffffff80;--xiangqi-cell-hover:#ffefd92e;--move-target:#10b981e0;--move-target-soft:#10b9811f;--move-selected:#3b82f6e6;--move-last:#eab308cc}.board.xiangqiBoard.xiangqiBoardTheme-jade{--xiangqi-board-frame-top:#4f7b66;--xiangqi-board-frame-bottom:#29473e;--xiangqi-frame-highlight:#e8faf31f;--xiangqi-board-border:#1a352deb;--xiangqi-board-shadow:0 16px 32px #09201a47, 0 5px 12px #09201a2e, inset 0 1px 0 #ffffff1a;--xiangqi-board-fill-top:#eef5ea;--xiangqi-board-fill-middle:#e2eddf;--xiangqi-board-fill-bottom:#d8e4d7;--xiangqi-board-glow:#f4fff757;--xiangqi-board-glow-faint:#f4fff71a;--xiangqi-line:#20382f;--xiangqi-palace-line:#214236;--xiangqi-river-fill-top:#edf5ea;--xiangqi-river-fill-bottom:#dde8db;--xiangqi-river-text:#234238;--xiangqi-marker-color:#214238e0;--xiangqi-marker-soldier-color:#214238b8;--xiangqi-piece-red:#a11d18;--xiangqi-piece-black:#12211c;--xiangqi-piece-border-red:#a11d1866;--xiangqi-piece-border-black:#12211c52;--xiangqi-piece-surface-top:#fafcf3;--xiangqi-piece-surface-middle:#eef4e6;--xiangqi-piece-surface-bottom:#dfe9d7;--xiangqi-piece-border:#38584d47;--xiangqi-piece-shadow:0 3px 8px #0b1b1638, 0 0 0 1px #ffffff57 inset, 0 -1px 0 #52796a14 inset;--xiangqi-piece-text-shadow:0 1px 0 #ffffff94;--xiangqi-cell-hover:#e4f5eb2e;--move-target:#16a34ae6;--move-target-soft:#16a34a1f;--move-selected:#3b82f6eb;--move-last:#ca8a04cc}.board.xiangqiBoard.xiangqiBoardTheme-ink{--xiangqi-board-frame-top:#f6f1e5;--xiangqi-board-frame-bottom:#e6e1d6;--xiangqi-frame-highlight:#ffffff5c;--xiangqi-board-border:#11182799;--xiangqi-board-shadow:0 12px 24px #0f172a29, 0 4px 10px #0f172a14, inset 0 1px 0 #ffffff7a;--xiangqi-board-fill-top:#fcfaf4;--xiangqi-board-fill-middle:#f7f4ed;--xiangqi-board-fill-bottom:#f0ede4;--xiangqi-board-glow:#ffffff85;--xiangqi-board-glow-faint:#ffffff29;--xiangqi-line:#111827;--xiangqi-palace-line:#111827;--xiangqi-river-fill-top:#f3f0e6;--xiangqi-river-fill-bottom:#e8e4d8;--xiangqi-river-text:#111;--xiangqi-marker-color:#111827f0;--xiangqi-marker-soldier-color:#111827c7;--xiangqi-piece-red:#b42318;--xiangqi-piece-black:#111827;--xiangqi-piece-border-red:#b4231870;--xiangqi-piece-border-black:#11182757;--xiangqi-piece-surface-top:#fff;--xiangqi-piece-surface-middle:#f7f7f2;--xiangqi-piece-surface-bottom:#ece9df;--xiangqi-piece-border:#11182742;--xiangqi-piece-shadow:0 2px 4px #1118271f, 0 0 0 1px #ffffffa3 inset, 0 -1px 0 #1118270d inset;--xiangqi-piece-text-shadow:0 1px 0 #ffffffc7;--xiangqi-cell-hover:#1118270f;--move-target:#16a34aeb;--move-target-soft:#16a34a1f;--move-selected:#111827eb;--move-last:#d97706d1}.board.xiangqiBoard.xiangqiBoardTheme-lacquer{--xiangqi-board-frame-top:#8b2c24;--xiangqi-board-frame-bottom:#4f2018;--xiangqi-frame-highlight:#ffe1ce1c;--xiangqi-board-border:#3a1711f0;--xiangqi-board-shadow:0 15px 30px #1c0c0847, 0 5px 12px #1c0c082e, inset 0 1px 0 #ffffff1a;--xiangqi-board-fill-top:#f5e5c8;--xiangqi-board-fill-middle:#edd7b1;--xiangqi-board-fill-bottom:#e2c292;--xiangqi-board-glow:#fff0e24d;--xiangqi-board-glow-faint:#fff0e214;--xiangqi-line:#6f2a22;--xiangqi-palace-line:#7b3329;--xiangqi-river-fill-top:#f3e2c3;--xiangqi-river-fill-bottom:#ead1a4;--xiangqi-river-text:#6d2d22;--xiangqi-marker-color:#5e281dd6;--xiangqi-marker-soldier-color:#5e281dad;--xiangqi-piece-red:#a31f1b;--xiangqi-piece-black:#28313d;--xiangqi-piece-border-red:#a31f1b66;--xiangqi-piece-border-black:#28313d4d;--xiangqi-piece-surface-top:#fff9ef;--xiangqi-piece-surface-middle:#f6e8cf;--xiangqi-piece-surface-bottom:#ebd1a9;--xiangqi-piece-border:#6f352547;--xiangqi-piece-shadow:0 3px 7px #220d0938, 0 0 0 1px #ffffff4d inset, 0 -1px 0 #7c3a2d1a inset;--xiangqi-piece-text-shadow:0 1px 0 #ffffff80;--xiangqi-cell-hover:#ffe8d929;--move-target:#16a34ae0;--move-target-soft:#16a34a1f;--move-selected:#3b82f6eb;--move-last:#eab308d1}.board.xiangqiBoard.xiangqiBoardTheme-contrast{--xiangqi-board-frame-top:#fbfbfb;--xiangqi-board-frame-bottom:#e5e7eb;--xiangqi-frame-highlight:#ffffff73;--xiangqi-board-border:#111827;--xiangqi-board-shadow:0 12px 24px #0f172a29, 0 4px 10px #0f172a14, inset 0 1px 0 #ffffffad;--xiangqi-board-fill-top:#fff;--xiangqi-board-fill-middle:#f8fafc;--xiangqi-board-fill-bottom:#f1f5f9;--xiangqi-board-glow:#ffffff8f;--xiangqi-board-glow-faint:#fff3;--xiangqi-line:#111;--xiangqi-palace-line:#0f172a;--xiangqi-river-fill-top:#f8fafc;--xiangqi-river-fill-bottom:#e5e7eb;--xiangqi-river-text:#111;--xiangqi-marker-color:#111827f5;--xiangqi-marker-soldier-color:#111827d1;--xiangqi-piece-red:#b91c1c;--xiangqi-piece-black:#111;--xiangqi-piece-border-red:#b91c1c7a;--xiangqi-piece-border-black:#11111157;--xiangqi-piece-surface-top:#fff;--xiangqi-piece-surface-middle:#f8f8f8;--xiangqi-piece-surface-bottom:#ececec;--xiangqi-piece-border:#11182752;--xiangqi-piece-shadow:0 2px 4px #0f172a1f, 0 0 0 1px #ffffffe6 inset, 0 -1px 0 #0f172a14 inset;--xiangqi-piece-text-shadow:0 1px 0 #fffc;--xiangqi-cell-hover:#1118270d;--move-target:#166534f0;--move-target-soft:#1665341f;--move-selected:#0f172af5;--move-last:#d97706d6}.board.chessBoardTheme-wood{--chess-board-light:#f2e2c7;--chess-board-dark:#b88860}.board.chessBoardTheme-green{--chess-board-light:#e4edd4;--chess-board-dark:#769b67}.board.chessBoardTheme-blue{--chess-board-light:#dde7f6;--chess-board-dark:#6487b3}.board.chessBoardTheme-mono{--chess-board-light:#edf1f5;--chess-board-dark:#94a3b8}.board.chessBoardTheme-walnut{--chess-board-light:#e8d7bf;--chess-board-dark:#7c5237}.board.chessBoardTheme-marble{--chess-board-light:#f3f4f6;--chess-board-dark:#9ca3af}.board.chessBoardTheme-tournament{--chess-board-light:#f0d9b5;--chess-board-dark:#b58863}.board.chessBoardTheme-neon{--chess-board-light:#10213a;--chess-board-dark:#132d52}.chessControls{flex-wrap:wrap;gap:8px;display:flex}.square{appearance:none;aspect-ratio:1;cursor:pointer;border:none;justify-content:center;align-items:center;width:100%;height:100%;margin:0;padding:0;line-height:1;display:flex;position:relative}.xiangqiCell{touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;z-index:1;width:calc((100% / 8) * var(--xiangqi-piece-scale));height:calc((100% / 9) * var(--xiangqi-piece-scale));background:0 0;border-radius:999px;transition:background .12s,box-shadow .12s,filter .12s;position:absolute;top:0;left:0;transform:translate(-50%,-50%)}.xiangqiCell:hover:not(:disabled){background:var(--xiangqi-cell-hover)}.xiangqiCell:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.xiangqiBoardArt{z-index:0;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.xiangqiMoveHint{border:2px solid var(--move-target);pointer-events:none;background:0 0;border-radius:999px;width:19%;height:19%;position:absolute;inset:50%;transform:translate(-50%,-50%);box-shadow:inset 0 0 0 1px #ffffff3d,0 0 0 1px #0f172a14}.xiangqiPieceFrame{z-index:1;background:radial-gradient(circle at 30% 24%, #ffffffeb, #ffffff8f 24%, #fff0 43%), linear-gradient(180deg, var(--xiangqi-piece-surface-top), var(--xiangqi-piece-surface-middle) 58%, var(--xiangqi-piece-surface-bottom));width:80%;height:80%;box-shadow:var(--xiangqi-piece-shadow);border:1px solid var(--xiangqi-piece-border);color:var(--xiangqi-piece-black);text-shadow:var(--xiangqi-piece-text-shadow);border-radius:999px;place-items:center;font-family:STKaiti,Kaiti SC,KaiTi,Songti SC,Noto Serif CJK SC,serif;font-weight:700;display:grid;position:relative}.xiangqiPieceFrame:before{content:"";border-radius:inherit;pointer-events:none;background:radial-gradient(circle at 30% 24%,#ffffff8f,#0000 58%);position:absolute;inset:11%}.xiangqiPieceFrame.red{color:var(--xiangqi-piece-red);border-color:var(--xiangqi-piece-border-red)}.xiangqiPieceFrame.black{color:var(--xiangqi-piece-black);border-color:var(--xiangqi-piece-border-black)}.xiangqiPieceGlyph{z-index:1;letter-spacing:.01em;font-size:clamp(.96rem,2.05vw,1.32rem);line-height:1;position:relative;transform:translateY(.01em)}.xiangqiRules{border:1px solid var(--border-soft);background:var(--surface-soft);border-radius:12px;padding:10px 12px}.xiangqiRules h3{margin:0 0 6px;font-size:.95rem}.xiangqiRules ul{color:var(--text-secondary);gap:4px;margin:0;padding-left:18px;font-size:.85rem;display:grid}.chessPieceFrame{--piece-bg:transparent;--piece-border:transparent;--piece-shadow:0 2px 6px #0f172a33;--piece-filter:brightness(0) invert(1);--piece-radius:18%;--piece-scale:1;--piece-sheen:.45;border-radius:var(--piece-radius);background:var(--piece-bg);border:1px solid var(--piece-border);width:78%;height:78%;box-shadow:var(--piece-shadow);transform:scale(var(--piece-scale));isolation:isolate;place-items:center;display:grid;position:relative}.chessPieceFrame:before{content:"";border-radius:inherit;background:radial-gradient(circle at 30% 24%, rgba(255, 255, 255, var(--piece-sheen)), transparent 52%);pointer-events:none;width:100%;max-width:100%;position:relative;inset:auto}.chessPieceIcon{pointer-events:none;-webkit-user-select:none;user-select:none;z-index:1;width:84%;height:84%;filter:var(--piece-filter);display:block;position:relative}.chessPieceFrame.piece-classic .chessPieceIcon{width:90%;height:90%}.chessPieceFrame.white{--piece-bg:linear-gradient(145deg, #ffffffe6, #e2e8f0d1);--piece-border:#0f172a29;--piece-shadow:0 2px 6px #0f172a38;--piece-filter:brightness(0) invert(1) drop-shadow(0 1px 1px #0f172a73)}.chessPieceFrame.black{--piece-bg:linear-gradient(145deg, #0f172af5, #334155e6);--piece-border:#ffffff1a;--piece-shadow:0 3px 8px #0f172a59;--piece-filter:brightness(.08) drop-shadow(0 1px 1px #0f172a8c)}.chessPieceFrame.piece-minimal{--piece-bg:transparent;--piece-border:#ffffff14;--piece-shadow:0 1px 4px #0f172a33;--piece-radius:18%;--piece-scale:.98;--piece-sheen:.18}.chessPieceFrame.piece-contrast{--piece-radius:24%;--piece-scale:.96;--piece-shadow:0 3px 10px #0f172a47;--piece-sheen:.62}.chessPieceFrame.piece-filled{--piece-radius:999px;--piece-scale:.94;--piece-shadow:0 4px 12px #0f172a4d;--piece-sheen:.76}.chessPieceFrame.piece-rounded{--piece-radius:30% 30% 28% 28% / 18% 18% 34% 34%;--piece-scale:1.08;--piece-bg:linear-gradient(180deg, #fffbf5f5, #e8ecf4e6);--piece-border:#3341552e;--piece-shadow:0 5px 12px #0f172a42, 0 1px 0 #ffffff7a inset;--piece-filter:none;--piece-sheen:.82}.chessPieceFrame.piece-rounded.white{--piece-bg:linear-gradient(180deg, #fffbf5fa, #e7eef8eb);--piece-border:#4755693d;--piece-shadow:0 6px 14px #0f172a38, 0 1px 0 #ffffff80 inset}.chessPieceFrame.piece-rounded.black{--piece-bg:linear-gradient(180deg, #111827f5, #313a49eb);--piece-border:#ffffff24;--piece-shadow:0 7px 16px #0f172a5c, 0 1px 0 #ffffff14 inset;--piece-sheen:.36}.chessPieceFrame.piece-rounded:before{background:radial-gradient(circle at 30% 24%,#fffc,#ffffff2e 40%,#0000 66%);inset:8%}.chessPieceFrame.piece-rounded .chessPieceIcon{filter:drop-shadow(0 1px 1px #0f172a29);width:92%;height:92%}.chessPieceFrame.piece-classic{--piece-radius:22% 22% 26% 26% / 16% 16% 34% 34%;--piece-scale:1.02;--piece-bg:transparent;--piece-border:transparent;--piece-shadow:0 2px 8px #0f172a2e;--piece-filter:none;--piece-sheen:0}.chessPieceFrame.piece-classic.white,.chessPieceFrame.piece-classic.black{--piece-bg:transparent;--piece-border:transparent;--piece-shadow:0 2px 8px #0f172a2e;--piece-filter:none;--piece-sheen:0}.square.light{background:var(--chess-board-light)}.square.dark{background:var(--chess-board-dark)}.square.lastMove{box-shadow:inset 0 0 0 3px var(--move-last)}.square.target{box-shadow:inset 0 0 0 4px var(--move-target), inset 0 0 0 999px var(--move-target-soft)}.square.selected{box-shadow:inset 0 0 0 4px var(--move-selected)}.square:disabled{cursor:not-allowed}.controls,.ghostControls{flex-wrap:wrap;gap:8px;display:flex}.controls button,.ghostControls button{border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;color:var(--text-secondary);border-radius:10px;padding:9px 14px;font-weight:600}.controls button:hover,.ghostControls button:hover:not(:disabled){background:var(--surface-soft)}.captureToast{z-index:5;border:1px solid var(--border-strong);max-width:min(90%,420px);color:var(--text-secondary);pointer-events:none;background:#ffffffeb;border-radius:999px;align-items:center;gap:8px;padding:9px 12px;display:inline-flex;position:absolute;top:12px;left:50%;transform:translate(-50%);box-shadow:0 12px 26px #0f172a33}.captureToast-good{color:#14532d;background:#dcfce7f5;border-color:#22c55e9e}.captureToast-bad{color:#7f1d1d;background:#fee2e2f5;border-color:#ef444494}.captureToast-player{box-shadow:0 12px 26px #15803d29}.captureToast-computer{box-shadow:0 12px 26px #7f1d1d29}.captureToast .ghostToken.compact{flex-shrink:0}.captureToast span:last-child{font-weight:700}.ghostResultToast{z-index:2000;color:#1f2937;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffffffa;border:1px solid #94a3b857;border-radius:18px;align-items:center;gap:14px;width:min(420px,100vw - 32px);padding:14px 16px;display:flex;position:fixed;top:20px;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 18px 44px #0f172a2e}.ghostResultToast:before{content:"";background:linear-gradient(#22c55e,#86efac);width:4px;position:absolute;inset:0 auto 0 0}.ghostResultToast--danger:before{background:linear-gradient(#ef4444,#fca5a5)}.ghostResultToast--warning:before{background:linear-gradient(#f59e0b,#fcd34d)}.ghostResultToast--info:before{background:linear-gradient(#3b82f6,#93c5fd)}.ghostResultToastIcon{border-radius:999px;flex:none;justify-content:center;align-items:center;width:54px;height:54px;font-size:1.35rem;font-weight:800;line-height:1;display:inline-flex;box-shadow:inset 0 0 0 1px #ffffffa6}.ghostResultToastIcon--success{color:#15803d;background:#dcfce7}.ghostResultToastIcon--danger{color:#b91c1c;background:#fee2e2}.ghostResultToastIcon--warning{color:#d97706;background:#fef3c7}.ghostResultToastIcon--info{color:#2563eb;background:#dbeafe}.ghostResultToastBody{flex:auto;min-width:0}.ghostResultToast strong,.ghostResultToast p{margin:0}.ghostResultToast p{color:#4b5563;margin-top:4px;line-height:1.35}.ghostResultToastClose{border-radius:999px;flex:none;align-self:center;min-width:132px;min-height:40px;margin-left:auto;padding:10px 20px;font-size:.95rem;font-weight:700}.ghostResultToastClose:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ghostResultToastClose:hover:not(:disabled){background:var(--accent-hover)}@media (width<=640px){.ghostResultToast{border-radius:16px;gap:12px;width:calc(100vw - 24px);padding:12px 14px;top:16px}.ghostResultToastClose{width:100%;min-width:0;margin-left:0}.ghostResultToastIcon{width:46px;height:46px;font-size:1.15rem}.ghostResultToast p{font-size:.92rem}.ghostHeaderBar,.ghostControlPanel .ghostUnifiedHudHeaderRow{grid-template-columns:1fr}.ghostHeaderBar{gap:12px;padding:6px 2px 10px}.ghostHeaderBar .ghostButton,.ghostControlPanel .ghostUnifiedHudHeaderRow button,.ghostModeButton--compact{width:100%;min-height:42px}.ghostControlPanel{gap:12px;padding:14px}.ghostControlPanel .ghostUnifiedHudHeaderRow{gap:10px}.ghostBoardPhaseCard--setup{padding:20px 14px 14px}.ghostBoardPhaseCard--setup .ghostBoardPhaseActions,.ghostEntryDialog .ghostModeActions,.ghostEntryDialog .ghostBoardPhaseActions{grid-template-columns:1fr}.ghostBoardPhaseCard--setup .ghostSetupCounter{justify-content:center;width:100%}.ghostBoardPhaseCard--setup .ghostBoardHudPrimaryCopy{line-height:1.5}.ghostBoardPhaseCard--setup .ghostSetupDifficultyRow select,.ghostEntryDifficultyRow select{min-height:46px}}.ghostLegend{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.legendItem{color:var(--text-secondary);align-items:center;gap:6px;font-size:.84rem;display:inline-flex}.ghostBoardShell{width:100%;box-shadow:none;background:0 0;border:0;border-radius:0;flex-direction:column;justify-content:flex-start;align-items:stretch;gap:14px;padding:0;display:flex}.ghost-theme-tabletop .ghostControlPanel,.ghost-theme-nintendo .ghostControlPanel,.ghost-theme-strategy .ghostControlPanel,.ghost-theme-spooky .ghostControlPanel,.ghost-theme-tabletop .ghostBoardHudCard,.ghost-theme-nintendo .ghostBoardHudCard,.ghost-theme-strategy .ghostBoardHudCard,.ghost-theme-spooky .ghostBoardHudCard,.ghost-theme-tabletop .ghostBoardPhaseCard,.ghost-theme-nintendo .ghostBoardPhaseCard,.ghost-theme-strategy .ghostBoardPhaseCard,.ghost-theme-spooky .ghostBoardPhaseCard,.ghost-theme-tabletop .ghostMultiplayerRpsModalCard,.ghost-theme-nintendo .ghostMultiplayerRpsModalCard,.ghost-theme-strategy .ghostMultiplayerRpsModalCard,.ghost-theme-spooky .ghostMultiplayerRpsModalCard,.ghost-theme-tabletop .ghostOnlineCard,.ghost-theme-nintendo .ghostOnlineCard,.ghost-theme-strategy .ghostOnlineCard,.ghost-theme-spooky .ghostOnlineCard{background:var(--ghost-ui-surface,linear-gradient(180deg, color-mix(in srgb, var(--surface) 90%, white), var(--surface)));border-color:var(--ghost-ui-border,color-mix(in srgb, var(--border) 82%, transparent));box-shadow:var(--ghost-ui-shadow,0 16px 36px #0f172a14)}.ghost-theme-tabletop .ghostBoard,.ghost-theme-tabletop .ghostEntryDialog,.ghost-theme-tabletop .ghostControlPanel,.ghost-theme-tabletop .ghostBoardPhaseCard{background-image:radial-gradient(circle at 18% 18%, #ffffff29, transparent 22%), linear-gradient(135deg, #ffffff14, transparent 44%), var(--ghost-ui-surface,var(--surface))}.ghost-theme-nintendo .ghostBoard,.ghost-theme-nintendo .ghostEntryDialog,.ghost-theme-nintendo .ghostControlPanel,.ghost-theme-nintendo .ghostBoardPhaseCard{background-image:radial-gradient(circle at 14% 18%, #ffffff61, transparent 22%), radial-gradient(circle at 84% 12%, #ff78c22e, transparent 18%), linear-gradient(135deg, #ffffff42, transparent 36%), var(--ghost-ui-surface,var(--surface))}.ghost-theme-strategy .ghostBoard,.ghost-theme-strategy .ghostEntryDialog,.ghost-theme-strategy .ghostControlPanel,.ghost-theme-strategy .ghostBoardPhaseCard{background-image:linear-gradient(#ffffff08 1px, transparent 1px), linear-gradient(90deg, #ffffff08 1px, transparent 1px), var(--ghost-ui-surface,var(--surface));background-size:24px 24px,24px 24px,auto}.ghost-theme-spooky .ghostBoard,.ghost-theme-spooky .ghostEntryDialog,.ghost-theme-spooky .ghostControlPanel,.ghost-theme-spooky .ghostBoardPhaseCard{background-image:radial-gradient(circle at 20% 12%, #b185ff2e, transparent 18%), radial-gradient(circle at 80% 0%, #7a5cff24, transparent 22%), var(--ghost-ui-surface,var(--surface))}.ghostMultiplayerBoardSurface{width:100%;min-width:0}.ghostFloatingStatus{z-index:30;color:#fff;background:#0c101ce6;border:1px solid #ffffff2e;border-radius:12px;min-width:180px;max-width:240px;position:fixed;overflow:hidden;box-shadow:0 10px 24px #00000047}.ghostFloatingStatus__handle{width:100%;color:inherit;text-align:left;cursor:grab;background:#ffffff1f;border:0;padding:6px 10px}.ghostFloatingStatus__body{gap:4px;padding:8px 10px 10px;font-size:12px;line-height:1.25;display:grid}.ghostUnifiedHudHeaderRow{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.ghostUnifiedHudHeaderRow strong{font-size:1rem;display:block}.ghostUnifiedHudHeaderRow p{color:var(--text-secondary);margin:2px 0 0;font-size:.88rem}.ghostBoardShell--locked .ghostBoard{filter:blur(4px)brightness(.72)saturate(.92);pointer-events:none}.ghostLaunchOverlay{z-index:3;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);pointer-events:none;background:#0f172a2e;position:absolute;inset:0}.ghostBoardStage{align-content:start;justify-items:center;width:100%;min-width:0;max-width:min(920px,100% - 8px,100dvh - 160px);margin-inline:auto;display:grid;position:relative}.ghostHudDragHandle.dragging,.ghostHudDragHandle:active{cursor:grabbing}.ghostHudDragTitle{color:var(--text-title);letter-spacing:.02em;text-transform:none;font-size:.82rem;font-weight:800}.ghostHudDragHint{color:var(--text-muted);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;font-size:.68rem;font-weight:800}.ghostBoardHudCard{pointer-events:auto}.ghostBoardHudCard,.ghostBoardPhaseCard,.ghostOnlineCard,.ghostMultiplayerRpsModalCard{border:1px solid color-mix(in srgb, var(--border) 82%, transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 20px 42px #0f172a1a,inset 0 1px #ffffff59}.ghostBoard{border:1px solid color-mix(in srgb, var(--border) 54%, transparent);max-width:min(780px,100% - 4px,100dvh - 176px);box-shadow:0 28px 56px #0f172a33,inset 0 2px #ffffff3d}.ghostMultiplayerBoardSurface .ghostBoard{max-width:min(760px,100% - 4px,100dvh - 184px)}.ghostPhaseRail{gap:10px;min-width:0;display:grid}.ghostPhaseRail--desktop{display:none}.ghostPhaseRail--mobile{justify-items:center;display:grid}.ghostPhaseRail .ghostBoardPhaseCard{width:min(100%,320px);max-width:none}.ghostPhaseRail .ghostBoardPhaseCard--status{width:min(100%,280px)}.ghostBoardPhaseCard--rps{text-align:left;justify-items:stretch;gap:8px;width:min(100%,380px);padding:0}.ghostBoardPhaseOverlay{z-index:5;pointer-events:none;background:linear-gradient(#0f172a05,#0f172a0f);display:flex;position:absolute;inset:0}.ghostBoardPhaseOverlay--setup,.ghostBoardPhaseOverlay--status{display:none}.ghostBoardPhaseOverlay--rps{background:linear-gradient(#0f172a14,#0f172a29);justify-content:center;align-items:center;padding:12px}.ghostMultiplayerRpsModal{z-index:9999;pointer-events:auto;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0206178a;place-items:center;padding:10px;display:grid;position:fixed;inset:0}.ghostRpsResultDialog{max-width:min(100%,440px)}.ghostMultiplayerRpsModalCard{pointer-events:auto;z-index:1;border:1px solid color-mix(in srgb, var(--border) 80%, transparent);background-color:color-mix(in srgb, var(--surface) 96%, white);background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 96%, white), color-mix(in srgb, var(--surface-soft) 92%, white));border-radius:22px;gap:14px;width:min(100%,440px);max-width:calc(100vw - 20px);padding:18px;display:grid;position:relative;box-shadow:0 24px 52px #0f172a3d,inset 0 2px #fff6}.ghostEntryModal{z-index:10000;background:radial-gradient(circle at 14% 16%,#ffffff24,#0000 28%),radial-gradient(circle at 86% 18%,#6366f12e,#0000 24%),linear-gradient(#0f172a38,#0f172aad)}.ghostEntryDialog{border:1px solid var(--ghost-ui-border,var(--border-soft));background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 96%, white), var(--surface-soft));width:min(100%,520px);max-width:calc(100vw - 20px);box-shadow:0 24px 48px #0f172a3d, var(--ghost-ui-shadow-soft,none)}.ghostEntryDialog h2{letter-spacing:-.03em;font-size:clamp(1.55rem,1.08rem + 1.6vw,2.25rem)}.ghostEntryDialog .ghostBoardPhaseReveal{font-size:.98rem;line-height:1.5}.ghostEntryDialog .ghostModeActions,.ghostEntryDialog .ghostBoardPhaseActions{gap:12px}.ghostEntryDialog .ghostModeButton{border-radius:16px;min-height:54px;font-size:1rem;box-shadow:0 10px 22px #0f172a24}.ghostEntryHeader{text-align:left}.ghostEntryStack{gap:12px;width:100%;display:grid}.ghostEntryActions{width:100%}.ghostEntryField{text-align:left;gap:6px;display:grid}.ghostEntryField span{color:var(--text-secondary);font-size:.88rem;font-weight:700}.ghostEntryField input,.ghostEntryDifficultyRow select{width:100%}.ghostEntryInviteLink{overflow-wrap:anywhere;color:var(--link);text-align:left;font-size:.88rem;line-height:1.45}.ghostMultiplayerRpsModalHeader{align-content:start;gap:6px;display:grid}.ghostMultiplayerRpsModalHeader h2,.ghostMultiplayerRpsModalHeader h3{color:var(--text-title);margin:0;font-size:clamp(1.1rem,1rem + .55vw,1.4rem);line-height:1.2}.ghostMultiplayerRpsModalHeader .ghostBoardPhaseReveal{color:var(--text-secondary);opacity:1;margin:0}.ghostRpsResultHelper{font-size:.95rem;line-height:1.45}.ghostMultiplayerRpsResultList{gap:10px}.ghostMultiplayerRpsResultCard{flex-direction:column;justify-content:flex-start;align-items:stretch;gap:10px;padding:14px 14px 12px}.ghostMultiplayerRpsResultCard .ghostRpsResultLabel{color:var(--text-secondary)}.ghostMultiplayerRpsResultCard .ghostRpsChoiceVisual{border:1px solid color-mix(in srgb, var(--border-soft) 72%, transparent);background:color-mix(in srgb, var(--surface-soft) 84%, transparent);border-radius:16px;justify-items:center;gap:8px;width:100%;padding:14px 12px 12px;display:grid}.ghostMultiplayerRpsResultCard .ghostRpsChoiceVisual.compact{border:1px solid color-mix(in srgb, var(--border-soft) 72%, transparent);background:color-mix(in srgb, var(--surface-soft) 84%, transparent);width:100%;box-shadow:none;border-radius:16px;padding:14px 12px 12px}.ghostMultiplayerRpsResultCard .ghostRpsChoiceIcon{border-radius:18px;width:56px;height:56px}.ghostMultiplayerRpsResultCard .ghostRpsChoiceIcon svg{width:34px;height:34px}.ghostMultiplayerRpsResultCard .ghostRpsChoiceLabel{white-space:normal;font-size:.95rem}.ghostMultiplayerRpsResultPlayerLabel{align-self:flex-start}.ghostRpsResultFooter{margin-top:2px}.ghostMultiplayerRpsModalBackdrop{pointer-events:auto;cursor:pointer;background:#0f172a8c;border:0;padding:0;position:fixed;inset:0}.ghostBoardPhaseCard{pointer-events:auto;background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 94%, white), var(--surface-soft));-webkit-backdrop-filter:blur(14px)saturate(1.08);backdrop-filter:blur(14px)saturate(1.08);width:min(100%,420px);max-width:calc(100% - 24px);color:var(--text-primary);text-align:center;border:1px solid var(--ghost-ui-border,var(--border-soft));box-shadow:var(--ghost-ui-shadow,0 16px 36px #0f172a14);border-radius:18px;justify-items:center;gap:10px;padding:16px;display:grid}.ghostBoardPhaseCard--setup,.ghostBoardPhaseCard--status,.ghostBoardPhaseCard--rps{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0}.ghostBoardPhaseCard--setup{text-align:left;justify-items:stretch;gap:12px;width:min(100%,380px);padding:20px}.ghostBoardPhaseCard--setup p{color:var(--text-secondary)}.ghostBoardPhaseCard--setup .ghostBoardStatusStack{gap:12px}.ghostBoardPhaseCard--setup .ghostSetupCounter{letter-spacing:.02em;min-height:2.35rem;padding-inline:.85rem;font-size:.92rem}.ghostBoardPhaseCard--setup .ghostBoardHudPrimaryCopy{font-size:1rem}.ghostBoardPhaseCard--status{text-align:left;justify-items:stretch;gap:10px;width:min(100%,380px);padding:0}.ghostBoardHudSummary,.ghostBoardHudStatusLine{color:var(--text-secondary);margin:0;font-size:.92rem;line-height:1.4}.ghostBoardHudSummary,.ghostBoardHudStatusLine,.ghostBoardHudNote{border:1px solid var(--border-soft);background:color-mix(in srgb, var(--surface-soft) 76%, transparent);border-radius:14px;padding:10px 12px}.ghostBoardStatusStack{gap:8px;width:100%;display:grid}.ghostBoardStatusStack--play{gap:10px}.ghostBoardStatusBadgeRow{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.ghostBoardStatusBadge{border:1px solid var(--border-soft);background:color-mix(in srgb, var(--surface-soft) 82%, transparent);color:var(--text-title);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:.74rem;font-weight:800;display:inline-flex;box-shadow:inset 0 1px #fff6}.ghostBoardStatusBadge:before{content:"";background:var(--accent);width:7px;height:7px;box-shadow:0 0 0 4px var(--accent-ring-soft);border-radius:999px}.ghostBoardStatusStack--play .ghostSetupCounter--play{background:color-mix(in srgb, var(--surface-soft) 72%, transparent);margin-left:0}.ghostSetupCounter--complete{border-color:color-mix(in srgb, var(--accent) 50%, var(--border-soft));color:var(--text-title)}.ghostSetupDifficultyHint{color:var(--text-muted);font-size:.8rem;line-height:1.3}.ghostBoardHudSummary--stacked{flex-wrap:wrap;gap:4px;display:flex}.ghostBoardHudSummary--stacked strong{font-weight:800}.ghostBoardHudPrimaryCopy{color:var(--text-title);font-weight:700}.ghostBoardHudCaptures{border:1px solid var(--border-soft);background:color-mix(in srgb, var(--surface-soft) 76%, transparent);border-radius:16px;gap:6px;width:100%;margin-top:2px;padding:8px 10px;display:grid}.ghostBoardHudCaptureRow{flex-wrap:wrap;align-items:center;gap:6px 8px;min-width:0;display:flex}.ghostBoardHudCaptureOwner{letter-spacing:.08em;text-transform:uppercase;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;min-width:3.2rem;padding:2px 8px;font-size:.72rem;font-weight:900;display:inline-flex}.ghostBoardHudCaptureOwner--player{color:#1d4ed8;background:#3b82f624;border-color:#3b82f63d}.ghostBoardHudCaptureOwner--computer{color:#7e22ce;background:#a855f724;border-color:#a855f73d}.ghostBoardHudCaptureKinds{flex-wrap:wrap;gap:4px;min-width:0;display:flex}.ghostBoardHudSummary strong{color:var(--text-title)}.ghostBoardHudStatusLine span{color:var(--text-title);font-weight:700}.ghostBoardPhaseCard h3{color:var(--text-title);margin:0;font-size:1.05rem}.ghostBoardPhaseCard--setup .ghostBoardHudPrimaryCopy,.ghostBoardHudSummary,.ghostBoardHudStatusLine{color:var(--text-primary)}.ghostBoardPhaseCard p{color:var(--text-secondary);margin:0;font-size:.92rem;line-height:1.45}.ghostBoardHudStats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%;display:grid}.ghostBoardHudField{border:1px solid var(--border-soft);background:color-mix(in srgb, var(--surface-soft) 72%, transparent);text-align:left;border-radius:14px;gap:3px;padding:8px 10px;display:grid}.ghostBoardHudField--wide{grid-column:1/-1}.ghostBoardHudField span{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:700}.ghostBoardHudField strong{color:var(--text-title);font-size:.9rem;line-height:1.35}.ghostBoardHudNote{color:var(--text-secondary);min-height:1.35em;margin:0;font-size:.84rem;line-height:1.35}.ghostBoardHudNote--empty{visibility:hidden}.ghostBoardHudNote.visible{visibility:visible}.ghostBoardHudError{border:1px solid var(--error-border);background:var(--error-bg);color:var(--error-fg);border-radius:12px;margin:0;padding:8px 10px;font-size:.84rem;line-height:1.35}.ghostMiniFeed{border:1px solid var(--border-soft);background:color-mix(in srgb, var(--surface-soft) 74%, transparent);text-align:left;border-radius:16px;gap:8px;width:100%;padding:10px 12px;display:grid}.ghostMiniFeedHeader{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;gap:8px;font-size:.74rem;font-weight:800;display:flex}.ghostMiniFeed ul{color:var(--text-secondary);gap:4px;margin:0;padding-left:1rem;font-size:.86rem;line-height:1.4;display:grid}.ghostMiniFeed--reveal{background:color-mix(in srgb, var(--surface-soft) 82%, transparent)}.ghostMiniFeed--reveal p{color:var(--text-primary);margin:0;font-weight:700}.ghostBoardPhaseReveal{color:var(--text-primary);font-weight:700}.ghostReplayBanner{border:1px solid var(--border-soft);background:color-mix(in srgb, var(--surface-soft) 82%, transparent);border-radius:14px;gap:4px;margin-top:10px;padding:10px 12px;display:grid}.ghostReplayBanner strong,.ghostReplayPanel strong{color:var(--text-title)}.ghostReplayPanel{gap:10px;display:grid}.ghostReplayControls{flex-wrap:wrap;gap:8px;display:flex}.ghostReplayControls .ghostButton{min-width:92px}.ghostBoardPhaseActions{flex-wrap:wrap;justify-content:center;gap:8px;width:100%;display:flex}.ghostBoardPhaseCard--setup .ghostBoardPhaseActions{grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch;display:grid}.ghostSetupDifficultyRow{width:100%;color:var(--text-secondary);gap:6px;font-size:.88rem;display:grid}.ghostSetupDifficultyRow span{font-weight:600}.ghostSetupDifficultyRow select{border:1px solid var(--border-strong);background:color-mix(in srgb, var(--surface) 92%, white);width:100%;color:var(--text-primary);font:inherit;border-radius:12px;padding:10px 12px;font-size:.95rem}.ghostSetupDifficultyRow select:disabled{border-color:var(--border);background:var(--surface-muted);color:var(--text-disabled);cursor:not-allowed}.ghostBoardPhaseCard button:not(.ghostRpsChoiceButton){font:inherit;border:1px solid var(--border-strong);background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 96%, white), var(--surface-soft));cursor:pointer;color:var(--text-secondary);border-radius:14px;min-height:42px;padding:11px 14px;font-weight:600}.ghostBoardPhaseCard button:not(.ghostRpsChoiceButton):hover:not(:disabled){background:var(--surface-soft)}.ghostBoardPhaseCard button:not(.ghostRpsChoiceButton):disabled{cursor:not-allowed;opacity:.72}.ghostBoardPhaseCard .ghostPrimaryAction{background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 90%, white), var(--accent-hover));color:#fff;box-shadow:0 12px 22px var(--accent-ring);border-color:#0000}.ghostBoardPhaseCard .ghostPrimaryAction:hover:not(:disabled){background:var(--accent-hover)}.ghostBoardPhaseCard--setup .ghostPrimaryAction{min-height:50px;font-size:.98rem}.ghostBoardPhaseChoices button{min-width:0}.ghostBoardPhaseChoices{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.ghostRpsChoiceButton{box-sizing:border-box;background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 94%, white), var(--surface-soft));width:100%;min-height:98px;color:var(--text-secondary);border:1px solid #0000;border-radius:16px;flex-direction:column;place-items:center;gap:10px;padding:12px 10px;transition:transform .12s,box-shadow .12s,border-color .12s,filter .12s,background .12s;display:flex;box-shadow:0 10px 20px #0f172a14}.ghostRpsChoiceButton:hover:not(:disabled){transform:translateY(-2px)}.ghostRpsChoiceButton:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ghostRpsChoiceButton:disabled{cursor:not-allowed;opacity:.82}.ghostRpsChoiceButton.selected{border-color:currentColor;box-shadow:0 12px 24px #0f172a1f,inset 0 0 0 2px #ffffff80}.ghostRpsChoiceDialog{width:min(560px,100vw - 1.5rem)}.ghostRpsChoiceActions{margin-top:.25rem}.ghostRpsChoiceStatus{text-align:center;color:var(--text-secondary);margin:.4rem 0 0}.ghostRpsChoiceStatus--secondary{color:var(--text-muted)}.ghostRpsChoiceButton--rock{color:#6d28d9;background:linear-gradient(#f7f2ff,#ece8ff);border-color:#6d28d929}.ghostRpsChoiceButton--paper{color:#0f766e;background:linear-gradient(#f1fcfa,#e3f8f1);border-color:#0f766e2e}.ghostRpsChoiceButton--scissors{color:#c2410c;background:linear-gradient(#fff7ed,#fff0dd);border-color:#c2410c2e}.ghostRpsChoiceVisual{flex-direction:column;justify-content:center;align-items:center;gap:10px;width:100%;min-width:0;display:flex}.ghostRpsChoiceVisual.compact{width:auto;box-shadow:none;background:0 0;border:0;padding:0}.ghostRpsChoiceVisual--rock{color:#6d28d9}.ghostRpsChoiceVisual--paper{color:#0f766e}.ghostRpsChoiceVisual--scissors{color:#c2410c}.ghostRpsChoiceIcon{background:#ffffff8a;border-radius:20px;place-items:center;width:64px;height:64px;display:grid;box-shadow:inset 0 1px #ffffffe6,inset 0 -1px #0f172a0d}.ghostRpsChoiceVisual.compact .ghostRpsChoiceIcon{border-radius:14px;width:56px;height:56px}.ghostRpsChoiceIcon svg{width:42px;height:42px;display:block}.ghostRpsChoiceLabel{color:currentColor;text-align:center;font-size:.94rem;font-weight:800;line-height:1.25}.ghostRpsChoiceVisual.compact{gap:8px}.ghostRpsChoiceVisual.compact .ghostRpsChoiceLabel{white-space:normal}.ghostRpsResultList{gap:8px;width:100%;display:grid}.ghostRpsChoiceRow{border:1px solid color-mix(in srgb, var(--border-soft) 72%, transparent);background:color-mix(in srgb, var(--surface-soft) 84%, transparent);border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.ghostRpsChoiceRow--winner{border-color:color-mix(in srgb, var(--accent) 45%, var(--border-strong));background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 12%, var(--surface-soft)), var(--surface));box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 28%, transparent) inset, 0 10px 22px #0f172a1f}.ghostRpsChoiceRow--muted{opacity:.74}.ghostRpsResultLabel{color:var(--text-muted);letter-spacing:.12em;text-transform:uppercase;font-size:.76rem;font-weight:800}.ghostRpsResultActions{justify-content:center;width:100%;display:flex}.ghostMultiplayerRpsModalCard .ghostRpsResultActions{justify-content:flex-end}.ghostBoardPhaseCard button.ghostRpsCloseButton{background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 92%, white), var(--accent-hover));color:#fff;min-width:132px;font:inherit;border:1px solid #0000;border-radius:999px;padding:10px 16px;font-weight:700;box-shadow:0 10px 22px #0f172a24}.ghostBoardPhaseCard button.ghostRpsCloseButton:hover:not(:disabled){background:var(--accent-hover)}.ghostBoardPhaseCard button.ghostRpsCloseButton:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ghostBoardHudCard--game-over{text-align:center;justify-items:center;gap:10px;width:min(100%,380px)}.ghostBoardHudCard--setup,.ghostBoardHudCard--status,.ghostBoardHudCard--game-over,.ghostBoardHudCard--rps{position:relative;overflow:hidden}.ghostBoardHudCard--setup:before,.ghostBoardHudCard--status:before,.ghostBoardHudCard--game-over:before,.ghostBoardHudCard--rps:before{content:"";pointer-events:none;background:linear-gradient(135deg,#ffffff24,#0000 36%);position:absolute;inset:0}.ghostBoardHudCard--setup{border:1px solid color-mix(in srgb, var(--accent) 20%, var(--border-soft));box-shadow:0 14px 30px #0f172a1f,inset 0 1px #ffffff2e}.ghostBoardHudCard--status{border:1px solid color-mix(in srgb, var(--accent) 18%, var(--border-soft));box-shadow:0 14px 30px #0f172a1f,inset 0 1px #ffffff2e}.ghostBoardHudCard--game-over{border:1px solid color-mix(in srgb, var(--accent) 24%, var(--border-soft));box-shadow:0 16px 34px #0f172a29,inset 0 1px #fff3}.ghostBoardHudCard--rps{border:1px solid color-mix(in srgb, var(--accent) 18%, var(--border-soft));box-shadow:0 14px 30px #0f172a1f}.ghostBoardHudCard--game-over .gameEndReason{margin:0}.ghostBoardTheme-mist{--ghost-light:#fcfeff;--ghost-dark:#e9eff6;--board-border:#c8d7e3;--board-shadow-1:#0f172a14;--board-shadow-2:#0f172a0a;--move-last:#f59e0bd6;--move-target:#22c55eeb;--move-target-soft:#22c55e1a;--move-selected:#3b82f6f0;--exit-ring:#1e40af8c}.ghostBoardTheme-forest{--ghost-light:#f8fcf7;--ghost-dark:#dde8d3;--board-border:#a8bfa0;--board-shadow-1:#111f1714;--board-shadow-2:#111f170a;--move-last:#facc15d1;--move-target:#16a34aeb;--move-target-soft:#16a34a1f;--move-selected:#0f766ef0;--exit-ring:#15803d9e}.ghostBoardTheme-night{--ghost-light:#f1f4fb;--ghost-dark:#dbe2ef;--board-border:#c1cada;--board-shadow-1:#02061724;--board-shadow-2:#0206170f;--move-last:#facc15eb;--move-target:#4ade80f0;--move-target-soft:#4ade8024;--move-selected:#60a5faf5;--exit-ring:#7dd3fcd1}.ghostBoardTheme-shrine{--ghost-light:#fdfaf4;--ghost-dark:#eadfcf;--board-border:#c5b091;--board-shadow-1:#2e1c0a1a;--board-shadow-2:#2e1c0a0d;--move-last:#eab308e0;--move-target:#10b981eb;--move-target-soft:#10b9811f;--move-selected:#3b82f6eb;--exit-ring:#784c23a8}.ghostBoardTheme-candy{--ghost-light:#fff9fc;--ghost-dark:#efd7eb;--board-border:#d3a8c8;--board-shadow-1:#91165e1a;--board-shadow-2:#91165e0d;--move-last:#facc15db;--move-target:#22c55eeb;--move-target-soft:#22c55e1f;--move-selected:#a855f7f0;--exit-ring:#be185dad}.ghostBoardTheme-mono{--ghost-light:#fcfcfd;--ghost-dark:#d5d5db;--board-border:#a0a0a8;--board-shadow-1:#18181b1a;--board-shadow-2:#18181b0d;--move-last:#a1a1aaf5;--move-target:#0f172ae6;--move-target-soft:#0f172a14;--move-selected:#1f2937f0;--exit-ring:#27272ab8}.ghost-theme-tabletop{--ghost-ui-surface:linear-gradient(180deg, #f6ead8, #e0c19a);--ghost-ui-border:#74532a61;--ghost-ui-shadow:0 18px 38px #22181229;--ghost-ui-shadow-soft:0 10px 22px #2218121a;--ghost-board-edge:#604327a8;--ghost-board-halo:#fff7e733;--ghost-board-square-light:#fff6e7c2;--ghost-board-square-dark:#90653933}.ghost-theme-nintendo{--ghost-ui-surface:linear-gradient(180deg, #fff8fb, #ffdff0);--ghost-ui-border:#ff49a747;--ghost-ui-shadow:0 16px 34px #68287824;--ghost-ui-shadow-soft:0 9px 20px #6828781a;--ghost-board-edge:#ffffffd6;--ghost-board-halo:#ffffff3d;--ghost-board-square-light:#ffffffe6;--ghost-board-square-dark:#ffc5e747}.ghost-theme-strategy{--ghost-ui-surface:linear-gradient(180deg, #eef4fb, #d9e5f1);--ghost-ui-border:#2a4f7d4d;--ghost-ui-shadow:0 16px 34px #0f172a24;--ghost-ui-shadow-soft:0 9px 20px #0f172a14;--ghost-board-edge:#192c4aa3;--ghost-board-halo:#ffffff24;--ghost-board-square-light:#f3f7fce0;--ghost-board-square-dark:#c0d2e4ad}.ghost-theme-spooky{--ghost-ui-surface:linear-gradient(180deg, #2c203d, #181022 72%, #110b19);--ghost-ui-border:#c1a1ff47;--ghost-ui-shadow:0 20px 44px #05060c52;--ghost-ui-shadow-soft:0 11px 22px #05060c2e;--ghost-board-edge:#bd96ff8a;--ghost-board-halo:#ac7fff33;--ghost-board-square-light:#faf4ffa3;--ghost-board-square-dark:#4931673d}.ghostBoard{aspect-ratio:1;border:8px solid color-mix(in srgb, var(--ghost-board-edge,var(--board-border)) 70%, black);background:radial-gradient(circle at 28% 18%, var(--ghost-board-halo,#ffffff2e), transparent 30%), linear-gradient(135deg, var(--ghost-light), var(--ghost-dark));width:100%;max-width:min(820px,100% - 12px,100dvh - 170px);box-shadow:0 20px 40px var(--board-shadow-1), 0 5px 12px var(--board-shadow-2), inset 0 1px 0 #ffffff7a, inset 0 0 0 2px #ffffff24;border-radius:26px;grid-template-rows:repeat(6,1fr);grid-template-columns:repeat(6,1fr);display:grid;position:relative;overflow:hidden}.ghost-theme-strategy .ghostBoard{background:radial-gradient(circle at 28% 18%,#699dff29,#0000 30%),linear-gradient(135deg,#0a1223f5,#14213af5);border-color:#6fa5ff73}.ghost-theme-spooky .ghostBoard{background:radial-gradient(circle at 28% 18%,#bfa0ff2e,#0000 30%),linear-gradient(135deg,#1f1430fa,#110b1bfa);border-color:#c1a1ff80}.ghostBoard--readOnly{cursor:default}.ghostMultiplayerBoardNote{color:var(--text-muted);text-align:center;margin:0 0 8px;font-size:.82rem;line-height:1.25}.ghostSquare{appearance:none;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;background-clip:padding-box;background:linear-gradient(135deg, var(--ghost-board-square-light,#ffffff70), var(--ghost-board-square-dark,#00000014));border:none;justify-content:center;align-items:center;margin:0;padding:0;transition:box-shadow .14s,filter .14s,transform .14s,background-color .14s;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #0f172a0f}.ghostSquare:hover:not(:disabled){filter:brightness(1.03)saturate(1.01)}.ghostSquare:disabled{cursor:not-allowed}.ghostSquare:disabled:hover{filter:none}.ghostBoard--readOnly .ghostSquare:disabled{cursor:default}.ghostBoard.setupPhase,.ghostBoard.rpsPhase{filter:saturate(.98)brightness(1.03)}.ghostBoard--thinking{filter:saturate(.98)brightness(.99)}.ghostBoard--thinking .ghostSquare:not(:disabled){cursor:wait}.ghostBoard--thinking .ghostSquare.selected,.ghostBoard--thinking .ghostSquare.target,.ghostBoard--thinking .ghostSquare.setupSelected,.ghostBoard--thinking .ghostSquare.escapeReady,.ghostBoard--thinking .ghostSquare.lastMove,.ghostBoard--thinking .ghostSquare.lastMoveFrom,.ghostBoard--thinking .ghostSquare.lastMoveTo,.ghostBoard--thinking .ghostSquare.captureMove.lastMoveTo{box-shadow:none}.ghostBoard--thinking .ghostSquare:before,.ghostBoard--thinking .ghostSquare:after{opacity:0}.ghostBoard--playerTurn .ghostSquare:not(:disabled):hover{transform:translateY(-1px)}.ghostSquare:before,.ghostSquare:after{content:"";pointer-events:none;position:absolute;inset:0}.ghostSquare:after{border:1px solid #0000;border-radius:18px;transition:border-color .14s,box-shadow .14s,opacity .14s;inset:12%}.ghostSquare.target:after{border-color:color-mix(in srgb, var(--move-target) 86%, white);box-shadow:0 0 0 5px var(--move-target-soft), inset 0 0 0 1px color-mix(in srgb, var(--move-target) 45%, transparent);inset:14%}.ghostSquare.selected:after,.ghostSquare.setupSelected:after,.ghostSquare.escapeReady:after{border-color:color-mix(in srgb, var(--move-selected) 88%, white);box-shadow:0 0 0 5px color-mix(in srgb, var(--move-selected) 18%, transparent), inset 0 0 0 1px color-mix(in srgb, var(--move-selected) 40%, transparent);inset:10%}.ghostSquare.exit:after{border-color:color-mix(in srgb, var(--exit-ring) 88%, white);box-shadow:0 0 0 4px color-mix(in srgb, var(--exit-ring) 16%, transparent), inset 0 0 0 1px color-mix(in srgb, var(--exit-ring) 30%, transparent);inset:14%}.ghostSquare.computerSide{background-image:linear-gradient(180deg, color-mix(in srgb, var(--ghost-board-square-light,#ffffff6b) 82%, transparent), transparent 60%), linear-gradient(135deg, var(--ghost-board-square-light,#ffffff61), color-mix(in srgb, var(--ghost-board-square-dark,#00000014) 92%, transparent))}.ghostSquare.playerSide{background-image:linear-gradient(180deg, color-mix(in srgb, var(--ghost-board-square-light,#ffffff80) 92%, transparent), transparent 62%), linear-gradient(135deg, var(--ghost-board-square-light,#ffffff6b), color-mix(in srgb, var(--ghost-board-square-dark,#00000014) 88%, transparent))}.ghostSquare.lastMoveFrom:before,.ghostSquare.lastMoveTo:before{background:linear-gradient(135deg, color-mix(in srgb, var(--move-last) 22%, transparent), transparent 52%)}.ghostBoard.setupPhase .ghostSquare.computerSide .ghostToken,.ghostBoard.rpsPhase .ghostSquare.computerSide .ghostToken{opacity:.8;filter:saturate(.94)brightness(1.04)}.gomokuBoard{aspect-ratio:1;border:1px solid var(--board-border);background:radial-gradient(circle at 38% 24%, #ffffff2e, transparent 34%), linear-gradient(135deg, var(--gomoku-board-light), var(--gomoku-board-dark));width:100%;max-width:min(100%,720px,100dvw - 20px,100dvh - 150px);box-shadow:0 12px 28px var(--board-shadow-1), 0 3px 10px var(--board-shadow-2);border-radius:18px;grid-template-rows:repeat(15,1fr);grid-template-columns:repeat(15,1fr);display:grid;overflow:hidden}.gomokuCell{appearance:none;cursor:pointer;border:none;border-right:1px solid var(--gomoku-grid-line);border-bottom:1px solid var(--gomoku-grid-line);touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;background:0 0;justify-content:center;align-items:center;margin:0;padding:0;display:flex;position:relative}.gomokuCell:hover:not(:disabled){background:#ffffff0a}.gomokuCell:disabled{cursor:not-allowed}.gomokuCell.lastMove:after{content:"";border:3px solid var(--move-last);pointer-events:none;border-radius:50%;position:absolute;inset:6%;box-shadow:0 0 0 2px #ffffff2e}.gomokuStone{aspect-ratio:1;border-radius:50%;width:clamp(.95rem,2vw,2.05rem);position:relative;box-shadow:0 1px 4px #0f172a52,inset 0 1px #ffffff4d}.gomokuStone.black{background:radial-gradient(circle at 34% 28%,#ffffff38,#ffffff0a 18%,#404040 46%,#050505 100%);border:1px solid #ffffff14}.gomokuStone.white{background:radial-gradient(circle at 34% 28%,#fff,#fbfbfb 52%,#d7d7d7 100%);border:1px solid #0f172a33}.legendItem .gomokuStone{width:1.08rem;min-width:1.08rem}.reversiWrap,.reversiLayout{gap:12px;min-width:0;display:grid}.reversiLayout{grid-template-columns:minmax(0,340px) minmax(0,1fr);align-items:start}.reversiSidebar{align-content:start;gap:10px;min-width:0;display:grid}.reversiBoardColumn{align-content:start;justify-items:end;min-width:0;display:grid}.reversiHeaderBar{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px 12px;display:grid}.reversiHeaderBar>div{gap:4px;min-width:0;display:grid}.reversiHeaderBar h2{margin:0;font-size:1.3rem}.reversiHeaderBar p{color:var(--text-secondary);margin:0;font-size:.9rem}.reversiScoreGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.reversiScoreCard{border:1px solid var(--border-soft);background:var(--surface-soft);border-radius:12px;gap:8px;padding:10px 12px;display:grid}.reversiScoreCard strong{color:var(--text-title);font-size:1.5rem;line-height:1}.reversiScoreLabel{color:var(--text-secondary);align-items:center;gap:8px;font-size:.85rem;font-weight:600;display:inline-flex}.reversiScoreDisc{border-radius:50%;width:1rem;height:1rem;box-shadow:0 1px 3px #0f172a47,inset 0 1px #ffffff4d}.reversiScoreDisc.black{background:radial-gradient(circle at 34% 28%,#5a5a5a,#111 60%,#020202 100%);border:1px solid #ffffff1f}.reversiScoreDisc.white{background:radial-gradient(circle at 34% 28%,#fff,#f4f4f5 54%,#d4d4d8 100%);border:1px solid #0f172a2e}.reversiStatusGrid{background:var(--surface-soft)}.reversiRules{border:1px solid var(--border-soft);background:var(--surface-soft);border-radius:12px;padding:10px 12px}.reversiRules h3{margin:0 0 6px;font-size:.95rem}.reversiRules ul{color:var(--text-secondary);gap:4px;margin:0;padding-left:18px;font-size:.85rem;display:grid}.board.reversiBoard{--reversi-board-light:#5a8d4f;--reversi-board-dark:#46773d;--reversi-square-light:#5a8d4f;--reversi-square-dark:#4a7a41;--reversi-hint:#ffffffe6;--board-border:#2f5b2d;--board-shadow-1:#0e361833;--board-shadow-2:#0e36181f;background:radial-gradient(circle at 35% 20%, #ffffff1f, transparent 34%), linear-gradient(135deg, var(--reversi-board-light), var(--reversi-board-dark))}.board.reversiBoardTheme-classic{--reversi-board-light:#5f9552;--reversi-board-dark:#47763e;--reversi-square-light:#619755;--reversi-square-dark:#4c7b42;--reversi-hint:#ffffffeb;--board-border:#2f5b2d;--board-shadow-1:#0e361833;--board-shadow-2:#0e36181f}.board.reversiBoardTheme-forest{--reversi-board-light:#537c4f;--reversi-board-dark:#355b33;--reversi-square-light:#547d4f;--reversi-square-dark:#40663b;--reversi-hint:#f3faf4e6;--board-border:#284428;--board-shadow-1:#07240e3d;--board-shadow-2:#07240e1f}.board.reversiBoardTheme-night{--reversi-board-light:#162339;--reversi-board-dark:#0b1320;--reversi-square-light:#17253d;--reversi-square-dark:#0f1b2c;--reversi-hint:#7dd3fcf2;--board-border:#2a3f5d;--board-shadow-1:#0206178f;--board-shadow-2:#02061752}.board.reversiBoardTheme-marble{--reversi-board-light:#eff3f7;--reversi-board-dark:#cbd5e1;--reversi-square-light:#f4f7fa;--reversi-square-dark:#dbe3ec;--reversi-hint:#0f172a8f;--board-border:#9aa8b8;--board-shadow-1:#0f172a2e;--board-shadow-2:#0f172a1a}.board.reversiBoardTheme-paper{--reversi-board-light:#f4e3c1;--reversi-board-dark:#d3b98d;--reversi-square-light:#f3e2be;--reversi-square-dark:#d9bf96;--reversi-hint:#5a3f1fd1;--board-border:#9d7d51;--board-shadow-1:#5e3d122e;--board-shadow-2:#5e3d121a}.reversiSquare{touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;transition:background .12s,filter .12s,box-shadow .12s}.reversiSquare.light{background:var(--reversi-square-light)}.reversiSquare.dark{background:var(--reversi-square-dark)}.reversiSquare:hover:not(:disabled){filter:brightness(1.04)}.reversiSquare:disabled{cursor:not-allowed}.reversiMoveHint{aspect-ratio:1;background:var(--reversi-hint);opacity:.9;border-radius:50%;width:18%;position:absolute;box-shadow:0 0 0 3px #0f172a14}.reversiDisc{aspect-ratio:1;border-radius:50%;width:66%;transition:transform .16s,box-shadow .16s,opacity .16s;position:relative;transform:translateZ(0)scale(.98);box-shadow:0 1px 4px #0f172a4d,inset 0 1px #ffffff4d}.reversiDisc.black{background:radial-gradient(circle at 34% 28%,#595959,#111 60%,#020202 100%);border:1px solid #ffffff1f}.reversiDisc.white{background:radial-gradient(circle at 34% 28%,#fff,#f4f4f5 54%,#d4d4d8 100%);border:1px solid #0f172a2e}.ghostSquare.lastMove{box-shadow:inset 0 0 0 3px var(--move-last)}.ghostSquare.target{box-shadow:inset 0 0 0 4px var(--move-target), inset 0 0 0 999px color-mix(in srgb, var(--move-target-soft) 78%, transparent), 0 0 0 2px #fff3, 0 0 18px var(--move-target)}.ghostSquare.selected{z-index:1;box-shadow:inset 0 0 0 4px var(--move-selected), inset 0 0 0 999px #3b82f624, 0 0 0 2px #ffffff3d, 0 0 24px #2563eb57}.ghostSquare.setupSelected{z-index:1;box-shadow:inset 0 0 0 4px var(--move-selected), inset 0 0 0 999px #2563eb1f, 0 0 0 2px #ffffff3d, 0 0 26px #3b82f657}.ghostSquare.lastMoveFrom{box-shadow:inset 0 0 0 3px #facc15c7}.ghostSquare.lastMoveTo{box-shadow:inset 0 0 0 4px #22c55ee0,inset 0 0 0 999px #22c55e14,0 0 0 2px #ffffff29}.ghostSquare.captureMove.lastMoveTo{box-shadow:inset 0 0 0 4px #ef4444e6,inset 0 0 0 999px #ef444414,0 0 0 2px #ffffff29}.ghostSquare.target:after,.ghostSquare.selected:after,.ghostSquare.setupSelected:after,.ghostSquare.lastMoveTo:after{content:"";pointer-events:none;border-radius:50%;position:absolute}.ghostSquare.target:after{background:var(--move-target);box-shadow:0 0 0 3px #ffffff47, 0 0 12px var(--move-target);inset:28%}.ghostSquare.selected:after{border:2px solid #ffffffc7;inset:16%;box-shadow:0 0 0 3px #2563eb38}.ghostSquare.setupSelected:after{border:2px solid #ffffffd1;inset:14%;box-shadow:0 0 0 3px #3b82f63d}.ghostSquare.lastMoveTo:after{background:#ffffffc2;inset:36%;box-shadow:0 0 0 3px #0f172a0f}.ghostBoard .ghostToken{filter:drop-shadow(0 8px 14px #0f172a2e);transform:none}.ghostBoard .ghostToken.good{filter:drop-shadow(0 8px 18px #22c55e2e)}.ghostBoard .ghostToken.bad{filter:drop-shadow(0 8px 18px #ef44442e)}.ghostBoard .ghostToken.unknown{filter:drop-shadow(0 8px 18px #3b82f629)}.ghostSquare.computerSide{position:relative}.ghostSquare.exit:after{content:"";border:2px dashed var(--exit-ring);pointer-events:none;border-radius:50%;width:28%;height:28%;position:absolute}.ghostSquare:focus{outline:none}.ghostSquare:focus-visible{outline:3px solid color-mix(in srgb, var(--accent) 78%, white);outline-offset:-3px;z-index:2}.ghostSquare:focus-visible.exit:after{border-color:color-mix(in srgb, var(--accent) 88%, white)}.ghostBoard--thinking .ghostSquare:disabled{opacity:.92;filter:grayscale(.08)brightness(.96)}.ghostBoardHudNote.info.visible:before{content:"•";color:var(--accent);margin-right:6px}.ghostEscapeAction{z-index:4;border:1px solid var(--border-strong);background:var(--accent);color:#fff;border-radius:999px;min-width:76px;padding:8px 12px;font-weight:800;position:absolute;box-shadow:0 10px 20px #0f172a3d}.ghostEscapeAction.left{top:8px;left:8px}.ghostEscapeAction.right{top:8px;right:8px}.ghostEscapeAction:hover{background:var(--accent-hover)}.ghostEscapeAction:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ghostToken{--token-bg:linear-gradient(135deg, #e6ffef, #c5f7da);--token-border:#22c55e;--token-ink:#166534;--token-shadow:0 2px 6px var(--board-shadow-1);--token-radius:999px;--token-sheen:.42;--token-glow:transparent;--token-glow-opacity:0;--token-clip:none;--ghost-token-board-size:clamp(2.4rem, 6.15vw, 3.15rem);--ghost-token-art-scale:1;--ghost-token-badge-scale:1;--ghost-token-badge-offset-x:0px;--ghost-token-badge-offset-y:0px;--ghost-token-frame-scale:1;border-radius:var(--token-radius);background:var(--token-bg);border:1px solid var(--token-border);width:clamp(1.6rem,4vw,2.15rem);height:clamp(1.6rem,4vw,2.15rem);color:var(--token-ink);box-shadow:var(--token-shadow), inset 0 1px 0 #ffffff6b, 0 1px 0 #ffffff4d;isolation:isolate;clip-path:var(--token-clip);justify-content:center;align-items:center;font-size:clamp(.82rem,2.4vw,1.12rem);font-weight:700;display:flex;position:relative}.ghostToken:before{content:"";inset:calc(11% * var(--ghost-token-frame-scale));border-radius:inherit;background:radial-gradient(circle at 30% 24%, rgba(255, 255, 255, var(--token-sheen)), transparent 52%);pointer-events:none;z-index:0;position:absolute}.ghostToken:after{content:"";border-radius:inherit;background:radial-gradient(circle, var(--token-glow) 0%, transparent 72%);opacity:var(--token-glow-opacity);filter:blur(5px);pointer-events:none;z-index:-1;position:absolute;inset:8%}.ghostSigil{min-width:42%;height:18%;color:var(--token-ink);z-index:2;background:#ffffffc7;border:1px solid #0f172a1f;border-radius:999px;justify-content:center;align-items:center;padding:0 .2rem;font-size:.64rem;font-weight:900;line-height:1;display:flex;position:absolute;top:61%;left:50%;transform:translate(-50%,-50%);box-shadow:0 1px 2px #0f172a2e}.ghostToken.token-good .ghostSigil{box-shadow:0 1px 2px #0f172a2e,0 0 0 1px #22c55e3d,0 0 8px #4ade8029}.ghostToken.token-bad .ghostSigil{border-radius:7px;transform:translate(-50%,-50%)skew(-8deg);box-shadow:0 1px 2px #0f172a2e,0 0 0 1px #f8717129}.ghostToken.token-unknown .ghostSigil{border-style:dashed;box-shadow:0 1px 2px #0f172a2e,0 0 0 1px #64748b2e}.ghostToken.compact{width:1.2rem;height:1.2rem}.ghostToken.legendPiece{width:clamp(1.55rem,3.8vw,2.08rem);height:clamp(1.55rem,3.8vw,2.08rem)}.ghostToken.capturedPiece{width:1.2rem;height:1.2rem}.ghostToken.boardPiece{width:var(--ghost-token-board-size);height:var(--ghost-token-board-size);font-size:clamp(.9rem,2.5vw,1.08rem);transform:translateZ(0)scale(.98)}.ghostToken.boardPiece.owner-player,.ghostToken.boardPiece.owner-computer{box-shadow:var(--token-shadow), 0 0 0 2px var(--owner-ring), 0 0 0 4px var(--owner-halo), inset 0 1px 0 #ffffff6b}.ghostToken.boardPiece.owner-player{--owner-ring:#3b82f6b8;--owner-halo:#3b82f63d}.ghostToken.boardPiece.owner-computer{--owner-ring:#a855f7bd;--owner-halo:#a855f73d}.ghostOwnerCue{z-index:4;color:#fff;letter-spacing:.08em;text-transform:uppercase;text-shadow:0 1px 1px #00000052;pointer-events:none;background:#0f172ae0;border:1px solid #ffffffd1;border-radius:999px;justify-content:center;align-items:center;min-width:2.15rem;padding:.14rem .44rem;font-size:.62rem;font-weight:900;line-height:1;display:inline-flex;position:absolute;top:.55rem;left:.55rem;box-shadow:0 2px 6px #0f172a42,0 0 0 1px #0f172a14}.ghostOwnerCue--player{background:#15803dd1}.ghostOwnerCue--computer{background:#b91c1cd1}.ghostToken.compact .ghostBadge{min-width:.68rem;height:.68rem;font-size:.48rem;bottom:-2px;right:-1px}.ghostToken.token-good{--token-bg:linear-gradient(135deg, #effdf4, #c8f4d7);--token-border:#16a34a;--token-ink:#166534;--token-glow:#4ade8057}.ghostToken.token-bad{--token-bg:linear-gradient(135deg, #ffe3e3, #ffcad5);--token-border:#ef4444;--token-ink:#991b1b;--token-glow:#f8717157}.ghostToken.token-unknown{--token-bg:linear-gradient(135deg, #e2e8f0, #cbd5e1);--token-border:#64748b;--token-ink:#334155;--token-glow:#94a3b84d}.ghostToken.token-style-cute{--token-radius:38% 38% 42% 42% / 28% 28% 58% 58%;--token-shadow:0 2px 6px var(--board-shadow-1), inset 0 1px 0 #fff6;--token-sheen:.56;--ghost-token-art-scale:1.03}.ghostToken.token-style-cute .ghostIcon{filter:brightness(0)saturate()drop-shadow(0 1px 1px #0f172a2e);width:82%;height:82%}.ghostToken.token-style-cute:before{background:radial-gradient(circle at 30% 22%,#ffffff85,#0000 48%);inset:10%}.ghostToken.token-style-cute .ghostSigil{top:61%}.ghostToken.token-style-mystic{--token-shadow:0 0 0 1px #7c3aed47, 0 0 16px #7c3aed57;--token-sheen:.72;--token-clip:polygon(50% 0, 78% 10%, 94% 32%, 88% 74%, 50% 100%, 12% 74%, 6% 32%, 22% 10%);--ghost-token-art-scale:1.05}.ghostToken.token-style-mystic.token-good{--token-bg:linear-gradient(135deg, #eefdf7, #b9f3d7);--token-border:#34d399;--token-ink:#14532d;--token-glow:#6ee7b78c;--token-glow-opacity:.45;--token-clip:polygon(50% 0, 76% 12%, 92% 34%, 84% 78%, 50% 100%, 16% 78%, 8% 34%, 24% 12%)}.ghostToken.token-style-mystic.token-bad{--token-bg:linear-gradient(135deg, #ffe0ea, #b83280);--token-border:#f472b6;--token-ink:#fff1f2;--token-glow:#f472b68c;--token-glow-opacity:.48;--token-clip:polygon(50% 0, 72% 8%, 90% 22%, 100% 50%, 86% 86%, 50% 100%, 14% 86%, 0 50%, 10% 22%, 28% 8%)}.ghostToken.token-style-mystic.token-unknown{--token-bg:linear-gradient(135deg, #edf2ff, #a5b4fc);--token-border:#818cf8;--token-ink:#1e293b;--token-glow:#818cf866;--token-glow-opacity:.38;--token-clip:polygon(50% 0, 81% 10%, 94% 34%, 88% 72%, 50% 100%, 12% 72%, 6% 34%, 19% 10%)}.ghostToken.token-style-mystic .ghostSigil{min-width:46%;height:20%;font-size:.67rem;top:60%}.ghostToken.token-style-mystic .ghostIcon{filter:brightness(0)saturate()drop-shadow(0 2px 3px #0f172a3d);width:86%;height:86%}.ghostToken.token-style-mystic.token-good .ghostSigil{color:#14532d;background:#ffffffe0;border-color:#22c55e47}.ghostToken.token-style-mystic.token-bad .ghostSigil{color:#fff1f2;background:#7f1d1ddb;border-color:#f871714d}.ghostToken.token-style-mystic.token-unknown .ghostSigil{color:#f8fafc;background:#1e293bc2;border-color:#ffffff38}.ghostToken.token-style-minimal{--token-bg:linear-gradient(135deg, #f8fafc, #eef2f7);--token-border:#94a3b8;--token-ink:#0f172a;--token-radius:16%;--token-shadow:0 1px 3px #0f172a29;--token-sheen:.24;--ghost-token-art-scale:1.18;--ghost-token-badge-scale:.92}.ghostToken.token-style-minimal,.ghostToken.token-style-neon{--token-sheen:.48}.ghost-theme-strategy .ghostToken.boardPiece{box-shadow:var(--token-shadow), 0 0 0 2px color-mix(in srgb, var(--token-border) 74%, white), 0 0 0 4px #60a5fa14, inset 0 1px 0 #ffffff59}.ghost-theme-strategy .ghostBoard,.ghost-theme-strategy .ghostBoardPhaseCard,.ghost-theme-strategy .ghostControlPanel,.ghost-theme-strategy .ghostEntryDialog,.ghost-theme-strategy .ghostBoardPhaseCard h3,.ghost-theme-strategy .ghostBoardPhaseCard p,.ghost-theme-strategy .ghostControlPanel h2,.ghost-theme-strategy .ghostControlPanel p,.ghost-theme-strategy .ghostEntryDialog h2,.ghost-theme-strategy .ghostEntryDialog p,.ghost-theme-strategy .ghostUnifiedHudHeaderRow strong,.ghost-theme-strategy .ghostUnifiedHudHeaderRow p,.ghost-theme-strategy .ghostSetupDifficultyRow,.ghost-theme-strategy .ghostSetupDifficultyRow span,.ghost-theme-strategy .ghostSetupDifficultyHint,.ghost-theme-strategy .ghostBoardHudSummary,.ghost-theme-strategy .ghostBoardHudStatusLine,.ghost-theme-strategy .ghostBoardHudPrimaryCopy,.ghost-theme-strategy .ghostBoardHudNote{color:#dbeafe}.ghost-theme-strategy .ghostSetupCounter,.ghost-theme-strategy .ghostBoardStatusBadge,.ghost-theme-strategy .ghostOnlineBadge{color:#bfdbfe;background:#60a5fa24;border-color:#60a5fa3d}.ghost-theme-strategy .ghostButtonSecondary,.ghost-theme-strategy .ghostModeButton--compact,.ghost-theme-strategy .ghostBoardPhaseCard button:not(.ghostRpsChoiceButton),.ghost-theme-strategy .ghostSetupDifficultyRow select{color:#dbeafe;background:linear-gradient(#0f172af0,#1e293bf5);border-color:#60a5fa33}.ghost-theme-strategy .ghostButtonSecondary:hover:not(:disabled),.ghost-theme-strategy .ghostModeButton--compact:hover:not(:disabled),.ghost-theme-strategy .ghostBoardPhaseCard button:not(.ghostRpsChoiceButton):hover:not(:disabled),.ghost-theme-strategy .ghostSetupDifficultyRow select:hover:not(:disabled){background:linear-gradient(#182336fa,#26344b)}.ghostToken.token-style-minimal.token-good,.ghostToken.token-style-minimal.token-bad,.ghostToken.token-style-minimal.token-unknown{--token-bg:linear-gradient(135deg, #f8fafc, #eef2f7);--token-ink:#0f172a}.ghostToken.token-style-minimal .ghostIcon{opacity:.78;filter:grayscale()contrast(1.1);width:72%;height:72%}.ghostToken.token-style-minimal .ghostBadge{background:#0f172a;border-radius:6px}.ghostToken.token-style-minimal .ghostSigil{color:#0f172a;background:#ffffffe0}.ghostToken.token-style-neon{--token-radius:30%;--token-shadow:0 0 0 1px #22d3ee5c, 0 0 16px #3b82f675;--token-sheen:.62;--token-clip:polygon(50% 0, 90% 20%, 100% 50%, 90% 80%, 50% 100%, 10% 80%, 0 50%, 10% 20%);--ghost-token-art-scale:1.03}.ghostToken.token-style-neon.token-good{--token-bg:linear-gradient(135deg, #34d399, #06b6d4);--token-border:#67e8f9;--token-ink:#ecfeff;--token-glow:#22d3ee99;--token-glow-opacity:.45}.ghostToken.token-style-neon.token-bad{--token-bg:linear-gradient(135deg, #f43f5e, #a855f7);--token-border:#f9a8d4;--token-ink:#fff1f2;--token-glow:#f43f5e94;--token-glow-opacity:.45}.ghostToken.token-style-neon.token-unknown{--token-bg:linear-gradient(135deg, #38bdf8, #6366f1);--token-border:#93c5fd;--token-ink:#eff6ff;--token-glow:#6366f194;--token-glow-opacity:.45}.ghostToken.token-style-neon .ghostSigil{color:#ecfeff;background:#080f19e6;border-color:#7dd3fc70}.ghostToken.token-style-neon .ghostIcon{filter:drop-shadow(0 0 4px #7dd3fc47);width:78%;height:78%}.ghostToken.token-style-paper{--token-radius:12% 18% 16% 12% / 10% 14% 18% 12%;--token-shadow:0 1px 2px #0f172a29, inset 0 1px 0 #ffffff85;--token-sheen:.5;--token-clip:polygon(8% 12%, 92% 12%, 96% 18%, 94% 86%, 84% 94%, 16% 94%, 6% 88%, 4% 18%);--ghost-token-art-scale:1.04}.ghostToken.token-style-paper.token-good{--token-bg:linear-gradient(135deg, #f4efdd, #d9cfb3), repeating-linear-gradient(135deg, #ffffff2e 0 2px, transparent 2px 6px);--token-border:#bfae95;--token-ink:#4d3a21}.ghostToken.token-style-paper.token-bad{--token-bg:linear-gradient(135deg, #f5e8df, #d8baa2), repeating-linear-gradient(135deg, #ffffff24 0 2px, transparent 2px 6px);--token-border:#c89b82;--token-ink:#5a2f21}.ghostToken.token-style-paper.token-unknown{--token-bg:linear-gradient(135deg, #f2ece4, #d2c2b1), repeating-linear-gradient(135deg, #ffffff1f 0 2px, transparent 2px 6px);--token-border:#bfae95;--token-ink:#4b3f35}.ghostToken.token-style-paper .ghostSigil{color:#4d3a21;background:#fff8ece6;border-color:#7c5c3e33}.ghostToken.token-style-paper .ghostIcon{width:76%;height:76%}.ghostToken.token-style-shadow{--token-radius:40% 40% 44% 44% / 26% 26% 58% 58%;--token-shadow:0 3px 10px #0206176b, inset 0 1px 0 #ffffff2e;--token-sheen:.26;--token-clip:polygon(50% 0, 72% 8%, 90% 25%, 96% 52%, 86% 84%, 50% 100%, 14% 84%, 4% 52%, 10% 25%, 28% 8%);--ghost-token-art-scale:1.06}.ghostToken.token-style-shadow.token-good{--token-bg:linear-gradient(135deg, #14532d, #22c55e);--token-border:#86efac;--token-ink:#dcfce7}.ghostToken.token-style-shadow.token-bad{--token-bg:linear-gradient(135deg, #7f1d1d, #ef4444);--token-border:#fca5a5;--token-ink:#fee2e2}.ghostToken.token-style-shadow.token-unknown{--token-bg:linear-gradient(135deg, #334155, #64748b);--token-border:#94a3b8;--token-ink:#e2e8f0}.ghostToken.token-style-shadow .ghostSigil{color:#e2e8f0;background:#0f172ad1;border-color:#ffffff2e}.ghostToken.token-style-shadow .ghostIcon{filter:drop-shadow(0 1px 2px #02061747);width:80%;height:80%}.ghostToken.token-style-mask{--token-radius:16%;--token-shadow:0 3px 10px #0f172a4d, inset 0 1px 0 #ffffff2e;--token-sheen:.52;--token-clip:polygon(18% 12%, 82% 12%, 91% 28%, 86% 78%, 50% 94%, 14% 78%, 9% 28%);--ghost-token-art-scale:1.11;--ghost-token-badge-scale:.9}.ghostToken.token-style-mask.token-good{--token-bg:linear-gradient(135deg, #f8edd6, #cbb07d);--token-border:#9a7b42;--token-ink:#4d371d}.ghostToken.token-style-mask.token-bad{--token-bg:linear-gradient(135deg, #ffd9d2, #d28a73);--token-border:#b56b54;--token-ink:#5f231d}.ghostToken.token-style-mask.token-unknown{--token-bg:linear-gradient(135deg, #e7eef4, #94a3b8);--token-border:#64748b;--token-ink:#1e293b}.ghostToken.token-style-mask .ghostSigil{color:#1e293b;background:#ffffffbd;border-radius:6px}.ghostToken.token-style-mask .ghostIcon{filter:brightness(0)saturate()drop-shadow(0 1px 2px #0f172a33);width:88%;height:88%}.ghostToken.token-style-spirit{--token-radius:52% 52% 42% 42% / 38% 38% 62% 62%;--token-shadow:0 0 0 1px #ffffff24, 0 0 18px #38bdf838;--token-sheen:.78;opacity:.97;--token-clip:polygon(50% 0, 76% 10%, 93% 32%, 88% 70%, 70% 92%, 50% 100%, 30% 92%, 12% 70%, 7% 32%, 24% 10%);--ghost-token-art-scale:1.12;--ghost-token-badge-scale:.9}.ghostToken.token-style-spirit.token-good{--token-bg:linear-gradient(135deg, #dbffeceb, #aaf3d0e6);--token-border:#5eead4c2;--token-ink:#125d3a}.ghostToken.token-style-spirit.token-bad{--token-bg:linear-gradient(135deg, #ffe3ebeb, #f9a8d4e6);--token-border:#f472b6c7;--token-ink:#7f1d5f}.ghostToken.token-style-spirit.token-unknown{--token-bg:linear-gradient(135deg, #e2e8f0eb, #c7d2fee6);--token-border:#818cf8b3;--token-ink:#334155}.ghostToken.token-style-spirit .ghostSigil{color:var(--token-ink);background:#ffffff80;border-color:#ffffff61}.ghostToken.token-style-spirit .ghostIcon{filter:brightness(0)saturate()drop-shadow(0 2px 4px #0f172a2e);width:90%;height:90%}.ghostToken.token-style-lantern{--token-radius:22% 22% 32% 32% / 16% 16% 60% 60%;--token-shadow:0 0 0 1px #f59e0b3d, 0 0 18px #fbbf2447;--token-sheen:.62;--token-clip:polygon(50% 0, 76% 8%, 92% 32%, 88% 78%, 50% 100%, 12% 78%, 8% 32%, 24% 8%);--ghost-token-art-scale:1.08;--ghost-token-badge-scale:.92}.ghostToken.token-style-lantern .ghostSigil{border-radius:6px;width:44%;height:18%}.ghostToken.token-style-lantern .ghostBadge{clip-path:polygon(50% 0,82% 18%,82% 82%,50% 100%,18% 82%,18% 18%)}.ghostToken.token-style-lantern .ghostIcon{width:78%;height:78%}.ghostToken.token-style-phantom{--token-radius:54% 54% 36% 36% / 28% 28% 72% 72%;--token-shadow:0 0 0 1px #94a3b838, 0 0 16px #e2e8f03d;--token-sheen:.72;--token-clip:polygon(50% 0, 72% 8%, 86% 24%, 95% 48%, 88% 76%, 72% 92%, 50% 100%, 28% 92%, 12% 76%, 5% 48%, 14% 24%, 28% 8%);--ghost-token-art-scale:1.08;--ghost-token-badge-scale:.92}.ghostToken.token-style-phantom .ghostSigil{border-radius:999px;width:42%;height:18%}.ghostToken.token-style-phantom .ghostBadge{border-radius:999px}.ghostToken.token-style-phantom .ghostIcon{opacity:.95;width:88%;height:88%}.ghostToken.token-style-skull{--token-radius:18%;--token-shadow:0 0 0 1px #94a3b847, 0 0 12px #0f172a38;--token-sheen:.48;--token-clip:polygon(50% 0, 78% 10%, 94% 32%, 88% 74%, 68% 92%, 32% 92%, 12% 74%, 6% 32%, 22% 10%);--ghost-token-art-scale:1.07;--ghost-token-badge-scale:.92}.ghostToken.token-style-skull .ghostSigil{border-radius:4px;width:46%;height:19%;transform:translate(-50%,-50%)skew(-5deg)}.ghostToken.token-style-skull .ghostBadge{clip-path:polygon(50% 0,84% 18%,84% 82%,50% 100%,16% 82%,16% 18%)}.ghostToken.token-style-skull .ghostIcon{filter:brightness(1.05)drop-shadow(0 2px 3px #0f172a33);width:76%;height:76%}.ghostToken.token-style-wisp{--token-radius:48% 48% 40% 40% / 26% 26% 72% 72%;--token-shadow:0 0 0 1px #2dd4bf38, 0 0 18px #2dd4bf3d;--token-sheen:.8;--token-clip:polygon(50% 0, 70% 10%, 86% 28%, 95% 50%, 88% 74%, 70% 92%, 50% 100%, 30% 92%, 12% 74%, 5% 50%, 14% 28%, 30% 10%);--ghost-token-art-scale:1.1;--ghost-token-badge-scale:.9}.ghostToken.token-style-wisp .ghostSigil{border-radius:999px;width:40%;height:17%;transform:translate(-50%,-50%)rotate(-4deg)}.ghostToken.token-style-wisp .ghostBadge{border-radius:999px}.ghostToken.token-style-wisp .ghostIcon{opacity:.96;width:86%;height:86%}.ghostToken.token-style-rune{--token-radius:14%;--token-shadow:0 0 0 1px #64748b47, 0 0 14px #64748b33;--token-sheen:.52;--token-clip:polygon(26% 0, 74% 0, 100% 26%, 100% 74%, 74% 100%, 26% 100%, 0 74%, 0 26%);--ghost-token-art-scale:1.08;--ghost-token-badge-scale:.92}.ghostToken.token-style-rune .ghostSigil{letter-spacing:.03em;border-radius:3px;width:44%;height:18%}.ghostToken.token-style-rune .ghostBadge{clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}.ghostToken.token-style-rune .ghostIcon{width:82%;height:82%}.ghostToken.boardPiece .ghostIcon{width:calc(82% * var(--ghost-token-art-scale));height:calc(82% * var(--ghost-token-art-scale))}.ghostToken.boardPiece .ghostSigil{min-width:44%;height:18%;font-size:.66rem;top:60%}.ghostToken.boardPiece .ghostBadge{right:calc(.1rem + var(--ghost-token-badge-offset-x));bottom:calc(.1rem + var(--ghost-token-badge-offset-y));min-width:.76rem;height:.76rem;transform:scale(var(--ghost-token-badge-scale));transform-origin:100% 100%;font-size:.5rem}.ghostIcon{z-index:1;filter:drop-shadow(0 1px 1px #0f172a33);width:74%;height:74%;display:block;position:relative}.ghostBadge{background:var(--text-title);min-width:.95rem;height:.95rem;color:var(--surface);z-index:2;border:1px solid #ffffffbf;border-radius:999px;justify-content:center;align-items:center;font-size:.62rem;font-weight:800;line-height:1;display:flex;position:absolute;bottom:-4px;right:-3px}.ghostToken.token-good .ghostBadge{background:#15803d}.ghostToken.token-bad .ghostBadge{background:#b91c1c}.ghostToken.token-unknown .ghostBadge{background:#334155}.ghostToken.token-style-cute .ghostBadge{border-radius:999px}.ghostToken.boardPiece.token-style-minimal .ghostIcon{opacity:.92;filter:grayscale()contrast(1.12)}.ghostToken.token-style-mystic .ghostBadge{background:#581c87f0;border-color:#c4b5fde0;box-shadow:0 0 0 1px #ffffff1a}.ghostToken.token-style-minimal .ghostBadge{border-radius:6px}.ghostToken.token-style-neon .ghostBadge{background:#080f19eb;border-color:#22d3ee9e;box-shadow:0 0 0 1px #22d3ee33,0 0 8px #22d3ee42}.ghostToken.token-style-paper .ghostBadge{background:#7c5c3ef0;border-radius:6px}.ghostToken.token-style-shadow .ghostBadge{background:#0f172a}.ghostToken.token-style-mask .ghostBadge{background:#4e3c26f5;border-radius:4px;bottom:1px;right:1px}.ghostToken.token-style-spirit .ghostBadge{background:#0f172ab8;border-color:#ffffff57}.exitDot{border:2px dashed var(--exit-ring);border-radius:50%;width:.8rem;height:.8rem}.ghostControls button:disabled{color:var(--text-disabled);cursor:not-allowed}.ghostCapturedGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.ghostCapturedCard{background:var(--surface-soft);border:1px solid var(--border-soft);border-radius:12px;padding:10px}.ghostCapturedCard h3{margin:0 0 8px;font-size:.95rem}.ghostCapturedList{flex-wrap:wrap;gap:6px;display:flex}.capturedTag{border:1px solid #0000;border-radius:999px;align-items:center;gap:6px;padding:2px 8px;font-size:.78rem;display:inline-flex}.capturedTag.good{color:#166534;background:#dcfce7;border-color:#86efac}.capturedTag.bad{color:#991b1b;background:#fee2e2;border-color:#fca5a5}.capturedEmpty{color:var(--text-muted);font-size:.85rem}.ghostRules{border:1px solid var(--border-soft);background:var(--surface-soft);text-align:left;border-radius:12px;gap:10px;padding:10px 12px;display:grid}.ghostRulesHeading{margin:0}.ghostRulesToggle{width:100%;color:var(--text-title);font:inherit;cursor:pointer;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:8px;padding:0;font-size:.95rem;font-weight:700;display:flex}.ghostRulesToggle:hover{color:var(--accent)}.ghostRulesToggle:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:8px}.ghostRulesToggleIcon{flex:none;line-height:1}.ghostRules ul{color:var(--text-secondary);gap:4px;margin:0;padding-left:18px;font-size:.85rem;display:grid}.ghostOnlinePanel{gap:10px}.ghostOnlineToggle{border:1px solid var(--border-strong);background:var(--surface);width:100%;color:var(--text-secondary);font:inherit;text-align:left;cursor:pointer;z-index:1;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex;position:relative}.ghostOnlineToggle:hover{border-color:var(--accent-hover)}.ghostOnlineToggle:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.ghostOnlineToggle strong{color:var(--text-title);font-size:.95rem;display:block}.ghostOnlineToggle small{color:var(--text-muted);margin-top:2px;font-size:.78rem;display:block}.ghostOnlineBadge{border-radius:999px;flex-shrink:0;align-items:center;padding:3px 9px;font-size:.74rem;font-weight:700;display:inline-flex}.ghostOnlineBadge--ready{background:var(--live-badge-bg);color:var(--live-badge-fg)}.ghostOnlineBadge--disabled{background:var(--planned-badge-bg);color:var(--planned-badge-fg)}.ghostOnlineCollapsedHint{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:6px;margin:0;font-size:.84rem;line-height:1.35;display:flex}.ghostSetupCounter{border:1px solid var(--border-soft);background:color-mix(in srgb, var(--surface-soft) 78%, transparent);color:var(--text-secondary);white-space:nowrap;border-radius:999px;align-items:center;margin-left:8px;padding:2px 8px;font-size:.76rem;line-height:1.2;display:inline-flex}.ghostOnlineSetupHint{color:var(--text-muted);margin:-2px 0 0;font-size:.82rem;line-height:1.35}.ghostOnlineBody{gap:12px;display:grid}.ghostGhostHero{border:1px solid color-mix(in srgb, var(--border-soft) 75%, white);background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 96%, white), color-mix(in srgb, var(--surface-soft) 88%, white));border-radius:22px;gap:12px;margin-bottom:14px;padding:16px;display:grid;box-shadow:0 16px 28px #0f172a14}.ghostGhostHero__copy{gap:6px;display:grid}.ghostGhostHero__copy h2{letter-spacing:-.02em;margin:0;font-size:clamp(1.4rem,2.2vw,1.8rem)}.ghostGhostHero__copy p,.ghostGhostHero__next{color:var(--text-secondary);margin:0;line-height:1.45}.ghostGhostHero__rail{border:1px solid color-mix(in srgb, var(--border-soft) 78%, white);background:color-mix(in srgb, var(--surface-strong) 48%, transparent);border-radius:18px;gap:8px;padding:12px 14px;display:grid}.ghostGhostHero__state{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;font-weight:700;display:flex}.ghostGhostHero__state span,.ghostGhostHero__state strong{min-width:0}.ghostGhostHero__state span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-size:.74rem}.ghostGhostHero__state strong{color:var(--text-title);font-size:.96rem}.ghostGhostHero__modeButton{justify-self:start}.ghostOnlineSection,.ghostOnlineHeroSection,.ghostOnlineInviteCard,.ghostOnlineStatusSection,.ghostOnlineRpsSection,.ghostOnlineSetupSection,.ghostOnlineErrorSection{box-shadow:none;background:0 0;border:0;gap:10px;padding:0;display:grid}.ghostOnlineSection,.ghostOnlineStatusSection,.ghostOnlineRpsSection,.ghostOnlineSetupSection,.ghostOnlineErrorSection{border-top:1px solid var(--border-soft);padding-top:10px}.ghostOnlineSection .ghostOnlineSectionHeader,.ghostOnlineHeroSection .ghostOnlineModeHeader{padding-bottom:0}.ghostOnlineHeroSection{padding-bottom:4px}.ghostOnlineLauncher{padding:12px 0 2px}.ghostOnlineLauncherGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.ghostOnlineLauncherCard{text-align:left;border:1px solid color-mix(in srgb, var(--border-soft) 72%, transparent);background:color-mix(in srgb, var(--surface) 90%, transparent);min-height:88px;color:var(--text-title);cursor:pointer;border-radius:18px;align-content:center;gap:6px;padding:14px 16px;display:grid}.ghostOnlineLauncherCard strong{font-size:1rem}.ghostOnlineLauncherCard span{color:var(--text-secondary);font-size:.86rem;line-height:1.35}.ghostOnlineLauncherCard--input{align-content:start}.ghostOnlineLauncherCard--input input,.ghostOnlineLauncherCard--input button{width:100%}.ghostOnlineHeroActions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.ghostOnlineSection--active{opacity:.94}.ghostOnlineInviteLinkShell{border:1px solid color-mix(in srgb, var(--border-soft) 72%, transparent);background:color-mix(in srgb, var(--surface) 88%, transparent);border-radius:14px;padding:10px 12px}.ghostOnlineInviteLink{color:var(--accent);word-break:break-word;overflow-wrap:anywhere;padding:0;font-size:.86rem;font-weight:700;display:block}.ghostOnlineModeHeader{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.ghostOnlineModeHeader>div{min-width:0}.ghostOnlineModeHeader strong{font-size:1rem;display:block}.ghostOnlineModeHeader p{color:var(--text-secondary);margin:2px 0 0;font-size:.88rem;line-height:1.35}.ghostOnlineHeroSection .ghostOnlineModeHeader>div{gap:2px;display:grid}.ghostOnlineModeHeader button{border-radius:999px;flex:none;min-height:40px;padding-inline:14px}.ghostOnlineLauncherCard:focus-visible,.ghostOnlineModeHeader button:focus-visible{outline:3px solid var(--accent-ring);outline-offset:2px}.ghostOnlineModeHeader button,.ghostOnlineSection button,.ghostOnlineHeroSection button{min-height:42px}.ghostOnlineStatusGrid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:10px;display:grid}.ghostOnlineStatusRow{border:1px solid color-mix(in srgb, var(--border-soft) 72%, transparent);background:color-mix(in srgb, var(--surface) 88%, transparent);border-radius:12px;gap:5px;padding:9px 10px;display:grid}.ghostOnlineStatusGrid--compact{gap:6px}.ghostOnlineStatusRow--wide{grid-column:1/-1}.ghostOnlineStatusRow--room{gap:8px}.ghostOnlineStatusRow span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.76rem}.ghostOnlineStatusRow strong{color:var(--text-title);word-break:break-word;font-size:.83rem}.ghostOnlineRoomList{gap:8px;display:grid}.ghostOnlineRoomBrowserHelper{margin:0}.ghostOnlineRoomListItem{border:1px solid color-mix(in srgb, var(--border-soft) 72%, transparent);background:color-mix(in srgb, var(--surface) 88%, transparent);border-radius:14px;gap:8px;padding:10px 12px;display:grid}.ghostOnlineRoomListItem strong{color:var(--text-title);word-break:break-word;font-size:.92rem;display:block}.ghostOnlineRoomListItem p{color:var(--text-secondary);margin:2px 0 0;font-size:.8rem;line-height:1.35}.ghostOnlineRoomListItem>div:not(.ghostOnlineActions){min-width:0;color:var(--text-secondary);font-size:.82rem}.ghostOnlineBadge{border:1px solid var(--border-soft);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;min-height:28px;padding:4px 10px;font-size:.72rem;font-weight:800;display:inline-flex}.ghostOnlineBadge--ready{border-color:color-mix(in srgb, var(--accent) 40%, var(--border-soft));color:var(--accent);background:color-mix(in srgb, var(--accent-ring-soft) 60%, var(--surface))}.ghostOnlineBadge--disabled{color:var(--text-muted);background:var(--surface-muted)}.ghostOnlineRoomIdRow{align-items:center;gap:8px;min-width:0;display:flex}.ghostOnlineRoomIdRow code{border:1px solid var(--border-soft);background:var(--surface-soft);min-width:0;color:var(--text-title);word-break:break-word;overflow-wrap:anywhere;border-radius:10px;flex:auto;padding:6px 8px;font-size:.82rem}.ghostOnlineRoomIdRow button{border:1px solid var(--border-strong);background:var(--surface);color:var(--text-secondary);font:inherit;cursor:pointer;border-radius:10px;flex:none;padding:6px 10px;font-weight:600}.ghostOnlineRoomIdRow button:hover:not(:disabled){background:var(--surface-soft);border-color:var(--accent-hover)}.ghostOnlineRoomIdRow button:disabled{background:var(--surface-muted);color:var(--text-disabled);cursor:not-allowed}.ghostOnlinePlayerGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.ghostOnlinePlayerCard{border:1px solid var(--border-soft);background:var(--surface);border-radius:12px;gap:8px;min-width:0;padding:10px 12px;display:grid}.ghostOnlinePlayerCard--self{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-ring)}.ghostOnlinePlayerCardHeader{justify-content:space-between;align-items:flex-start;gap:8px;min-width:0;display:flex}.ghostOnlinePlayerCardHeader>div{gap:2px;min-width:0;display:grid}.ghostOnlinePlayerCardHeader span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem}.ghostOnlinePlayerCardHeader strong{color:var(--text-title);word-break:break-word;font-size:.88rem}.ghostOnlinePlayerStats{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.ghostOnlinePlayerStats div{border:1px solid var(--border-soft);background:var(--surface-soft);border-radius:10px;gap:3px;min-width:0;padding:7px 8px;display:grid}.ghostOnlinePlayerStats span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem}.ghostOnlinePlayerStats strong{color:var(--text-title);word-break:break-word;font-size:.82rem}.ghostOnlinePlayerNote{color:var(--text-secondary);margin:0;font-size:.82rem;line-height:1.35}.ghostOnlineField{gap:6px;display:grid}.ghostOnlineField span{color:var(--text-muted);font-size:.82rem;font-weight:600}.ghostOnlineField input{border:1px solid var(--border-strong);background:var(--surface);width:100%;min-width:0;color:var(--text-primary);font:inherit;border-radius:10px;padding:7px 9px}.ghostOnlineField input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ghostOnlineInlineField{align-items:center;gap:8px;display:flex}.ghostOnlineInlineField input{flex:auto}.ghostOnlineInlineField button,.ghostOnlineActions button,.ghostOnlineErrorBox button{border:1px solid var(--border-strong);background:var(--surface);color:var(--text-secondary);font:inherit;cursor:pointer;border-radius:10px;font-weight:600}.ghostOnlineInlineField button:hover:not(:disabled),.ghostOnlineActions button:hover:not(:disabled){background:var(--surface-soft);border-color:var(--accent-hover)}.ghostOnlineInlineField button:disabled,.ghostOnlineActions button:disabled{background:var(--surface-muted);color:var(--text-disabled);cursor:not-allowed}.ghostOnlineInlineField button{flex:none;padding:7px 9px}.ghostOnlineActions{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.ghostOnlineActions button{padding:7px 9px}.ghostOnlineActions--deemphasized{opacity:.88}.ghostOnlineActions--secondary{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.ghostOnlineActions--bottom{align-items:start}.ghostOnlineInlineBackButton{justify-self:start;width:auto;padding-inline:12px}.ghostOnlineCollapsedHint--inline{align-self:center}.ghostEntryActions--bottom{justify-content:flex-start}.ghostOnlineActions button,.ghostOnlineInlineField button,.ghostOnlineErrorBox button,.ghostMultiplayerRpsModal button,.ghostBoardPhaseCard button:not(.ghostRpsChoiceButton){min-height:42px}.ghostOnlineDisabledMessage{border:1px solid var(--planned-badge-bg);background:var(--surface-muted);color:var(--text-secondary);border-radius:12px;margin:0;padding:8px 10px;font-size:.84rem;line-height:1.35}.ghostOnlineErrorBox{border:1px solid var(--error-border);background:var(--error-bg);color:var(--error-fg);border-radius:12px;gap:8px;padding:8px 10px;display:grid}.ghostOnlineErrorRow{justify-content:space-between;align-items:center;gap:8px;display:flex}.ghostOnlineErrorBox p{margin:0;font-size:.84rem;line-height:1.35}.ghostOnlineErrorBox button{color:inherit;background:0 0;border-color:currentColor;border-radius:999px;padding:4px 8px}.ghostOnlineMetaRow{color:var(--text-secondary);justify-content:space-between;align-items:baseline;gap:10px;min-width:0;padding:0 2px;font-size:.8rem;display:flex}.ghostOnlineMetaRow span{color:var(--text-muted)}.ghostOnlineMetaRow strong{text-align:right;word-break:break-word;overflow-wrap:anywhere}.ghostOnlinePreviewSection{background:0 0;border:0;gap:8px;padding:0;display:grid}.ghostOnlinePreviewSection h3{color:var(--text-title);text-transform:none;letter-spacing:0;margin:0;font-size:.88rem}.ghostOnlineSectionHeader{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.ghostOnlineSectionHeader h3{margin:0}.ghostOnlineLauncher .ghostOnlineSectionHeader h3{font-size:1.02rem}.ghostOnlineSectionHeader+.ghostOnlineCollapsedHint{margin-top:2px}.ghostOnlineSectionHeader span{justify-self:start}.ghostOnlineSection .ghostOnlineSectionHeader h3{font-size:1rem}.ghostOnlineBoardMetaGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.ghostOnlineBoardMetaNotice{justify-content:flex-start;min-width:0;display:flex}.ghostOnlineSpectatorChip{max-width:100%}.ghostOnlineBoardMetaGrid>div{border:1px solid color-mix(in srgb, var(--border-soft) 72%, transparent);background:color-mix(in srgb, var(--surface) 90%, transparent);border-radius:14px;gap:4px;min-width:0;padding:10px 12px;display:grid}.ghostOnlineBoardMetaGrid>div strong{min-width:0}.ghostOnlineBoardMetaGrid span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem}.ghostOnlineBoardMetaGrid strong{color:var(--text-title);word-break:break-word;font-size:.82rem}.ghostOnlineRpsPanel{background:0 0;border:0;border-radius:0;gap:10px;padding:0;display:grid}.ghostOnlineRpsHeader{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.ghostOnlineRpsChoiceRow{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.ghostOnlineRpsChoiceRow .ghostRpsChoiceButton{min-height:96px}.ghostOnlineRpsSummary{border:1px solid color-mix(in srgb, var(--border-soft) 72%, transparent);background:color-mix(in srgb, var(--surface) 90%, transparent);border-radius:10px;gap:4px;padding:8px 10px;display:grid}.ghostOnlineRpsSummaryGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.ghostOnlineRpsSummary--wide{grid-column:1/-1}.ghostOnlineRpsSummary span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem}.ghostOnlineRpsSummary strong{color:var(--text-title);word-break:break-word;font-size:.82rem}.ghostOnlineLegend{flex-wrap:wrap;gap:6px;display:flex}.ghostOnlineLegend span{border:1px solid var(--border-soft);background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 94%, white), var(--surface-soft));color:var(--text-secondary);border-radius:999px;align-items:center;gap:6px;padding:3px 8px;font-size:.74rem;line-height:1.2;display:inline-flex}.ghostOnlineLegend strong{text-align:center;min-width:.9rem}.ghostOnlineQADetails summary{cursor:pointer;color:var(--text-title);font-weight:700}.ghostOnlineQADetails summary:hover{color:var(--accent)}.ghostOnlineQASteps{color:var(--text-secondary);gap:6px;margin:0;padding-left:18px;font-size:.84rem;display:grid}.ghostOnlinePreview{border:1px solid var(--border-soft);background:var(--surface-soft);max-height:240px;color:var(--text-primary);white-space:pre-wrap;word-break:break-word;border-radius:10px;margin:0;padding:10px;font-size:.74rem;line-height:1.4;overflow:auto}.ghostOnlineLog{gap:6px;max-height:220px;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.ghostOnlineLogEntry{border:1px solid var(--border-soft);background:var(--surface-soft);border-radius:10px;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:8px;padding:8px 10px;font-size:.8rem;display:grid}.ghostOnlineLogEntry--error{border-color:var(--error-border);background:var(--error-bg);color:var(--error-fg)}.ghostOnlineLogEntry--success{border-color:#22c55e47}.ghostOnlineLogEntry--warning{border-color:#fbbf2459}.ghostOnlineLogEntry--status{border-color:var(--border-soft);background:var(--surface-soft)}.ghostOnlineLogEntry--info{border-color:var(--accent-ring)}.ghostOnlineLogTime{color:var(--text-muted);white-space:nowrap}.ghostOnlineLogMessage{word-break:break-word;min-width:0}.ghostOnlineLogEmpty{color:var(--text-muted);padding:6px 2px;font-size:.8rem}@media (width<=920px){.app{min-height:100svh;padding:8px}.appLayout{grid-template-columns:1fr;min-height:auto}.leftRail{display:none}.mobileTopBar{background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 96%, white), var(--surface));border:1px solid color-mix(in srgb, var(--border) 82%, white);border-radius:14px;padding:10px 12px;display:flex;box-shadow:0 12px 28px #0f172a0f}.sidePanel{width:min(320px,100vw - 16px);top:8px;bottom:8px;left:8px}.gamePanel{padding:10px}.gamePickerFeatured{padding:14px}.gamePickerFeaturedAction{padding:5px 9px}.chessLayout,.ghostLayout,.reversiLayout,.xiangqiLayout{grid-template-columns:1fr;gap:12px}.ghostLayout{grid-template-areas:"board""sidebar"}.chessBoardColumn,.ghostBoardColumn,.reversiBoardColumn,.xiangqiBoardColumn{justify-items:stretch}.ghostSidebar{grid-area:sidebar}.ghostBoardColumn{grid-area:board}.ghostBoardShell{justify-content:center}.ghostBoardHudSlot{width:calc(100% - 48px);top:26%}.xiangqiBoardShell{justify-content:center}.chessHeader,.ghostHeaderBar,.reversiHeaderBar,.xiangqiHeaderBar{grid-template-columns:1fr}.difficultyRow,.ghostDifficultySummary{text-align:left;justify-self:start}.ghostCapturedGrid{grid-template-columns:1fr}.ghostBoard{max-width:min(100%,520px)}.ghostPhaseRail--desktop{display:none}.ghostPhaseRail--mobile{display:grid}.reversiBoard{max-width:min(100%,520px)}.xiangqiBoard{max-width:min(100%,90dvh - 135px,520px)}.ghostBoardPhaseCard--setup{grid-template-columns:minmax(0,1fr) minmax(116px,.86fr);grid-template-areas:"header difficulty""message message""actions actions";align-items:start;gap:8px;padding:10px 12px}.ghostBoardPhaseCard--setup>.ghostHudDragHandle{grid-area:header}.ghostBoardPhaseCard--setup>p{flex-wrap:wrap;grid-area:message;align-items:center;gap:6px;margin:0;font-size:.82rem;line-height:1.3;display:flex}.ghostOnlineSetupHint{font-size:.78rem}.ghostBoardPhaseCard--setup>.ghostSetupDifficultyRow{grid-area:difficulty;align-self:start;gap:4px}.ghostBoardPhaseCard--setup>.ghostSetupDifficultyRow span{display:none}.ghostBoardPhaseCard--setup .ghostBoardPhaseActions{grid-area:actions;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.ghostBoardPhaseCard--setup button:not(.ghostRpsChoiceButton){padding:7px 10px}.ghostBoardPhaseCard--status{gap:6px;width:100%;padding:9px 10px}.ghostBoardHudStats{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.ghostBoardHudField{text-align:center;border-radius:999px;min-width:0;padding:6px 8px}.ghostBoardHudField--wide{grid-column:auto}.ghostBoardHudField span{display:none}.ghostBoardHudField strong{white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;line-height:1.2;overflow:hidden}.ghostBoardHudNote{display:none}.ghostBoardHudError{border-radius:10px;padding:7px 8px;font-size:.78rem;line-height:1.25}.ghostBoardHudSummary,.ghostBoardHudStatusLine{font-size:.84rem}.ghostBoardHudCaptures{padding:7px 8px}.ghostBoardHudCaptureOwner{min-width:2.9rem;padding:2px 7px;font-size:.68rem}.ghostBoardHudCaptureKinds .capturedTag{padding:2px 7px;font-size:.72rem}.ghostSetupDifficultyRow select{padding:7px 9px;font-size:.88rem}.ghostOnlineStatusGrid,.ghostOnlinePlayerGrid,.ghostOnlineActions--secondary{grid-template-columns:1fr}.ghostOnlineInviteLink{font-size:.78rem}.gomokuBoard{max-width:min(100%,100dvw - 16px,100dvh - 150px)}}@media (width<=640px){.mobileTopBar h1{font-size:1.08rem}.mobileTopBar p{font-size:.82rem}.mobileTopActions{flex-wrap:wrap;align-items:center;gap:6px}.gamesToggleButton.compact{min-height:40px;padding:8px 10px}.railActionLabel{display:none}.gamePickerFeatured{padding:13px}.gamePickerFeaturedName{font-size:1.06rem}.board,.ghostBoard{max-width:min(100vw - 40px,520px)}.ghostLayout,.ghostLayout--online{grid-template-columns:minmax(0,1fr)}.ghostControlColumn{max-width:none;max-height:none;position:static}.ghostControlPanel,.ghostEntryDialog{border-radius:20px}.ghostPhaseRail{gap:8px}.reversiBoard{max-width:min(100vw - 40px,520px)}.xiangqiBoard{max-width:min(100vw - 40px,90dvh - 135px,520px)}.ghostOnlineInlineField,.ghostOnlineRoomIdRow{flex-direction:column;align-items:stretch}.ghostOnlineRoomIdRow button{width:100%}.ghostOnlineActions,.ghostOnlineActions--secondary{grid-template-columns:1fr}.ghostOnlineActions--bottom{gap:8px}.ghostOnlineInlineBackButton{width:100%}.ghostOnlineMetaRow{flex-direction:column;align-items:flex-start}.ghostOnlineMetaRow strong{text-align:left}.ghostOnlineSectionHeader{flex-direction:column;align-items:flex-start}.ghostOnlineModeHeader{flex-direction:column}.ghostOnlineModeHeader button{width:100%}.ghostGhostHero{padding:14px}.ghostGhostHero__state{flex-direction:column;align-items:flex-start}.ghostGhostHero__modeButton{width:100%}.ghostOnlineLauncherGrid{grid-template-columns:1fr}.ghostOnlineHeroActions{justify-content:stretch}.ghostOnlineHeroActions button{flex:100%}.ghostOnlineRoomListItem{padding:10px}.ghostOnlineBoardMetaGrid,.ghostOnlinePlayerStats,.ghostOnlineRpsSummaryGrid,.ghostOnlineLogEntry{grid-template-columns:1fr}.ghostBoardPhaseCard--setup{grid-template-columns:minmax(0,1fr) minmax(104px,.88fr);grid-template-areas:"header difficulty""message message""actions actions";padding:9px 10px}.ghostBoardPhaseCard--setup>p{flex-wrap:wrap;grid-area:message;align-items:center;gap:6px;margin:0;font-size:.8rem;line-height:1.28;display:flex}.ghostBoardPhaseCard--setup .ghostBoardPhaseActions{gap:5px}.ghostBoardPhaseCard--setup button:not(.ghostRpsChoiceButton){padding:7px 9px}.ghostBoardPhaseCard--rps{gap:7px;width:min(100%,348px);padding:12px}.ghostMultiplayerRpsModal{padding:12px}.ghostMultiplayerRpsModalCard{border-radius:20px;gap:12px;width:min(100%,360px);max-width:calc(100vw - 24px);padding:16px}}@media (width>=1280px){.ghostBoardShell{justify-content:center;align-items:center}.ghostBoardStage{width:min(100%,920px);margin-inline:auto}.ghostBoardHudCard{width:100%}.ghostControlColumn{max-width:460px}}.ghostFloatingStatus{color:#f8fafc;-webkit-backdrop-filter:blur(10px);-webkit-user-select:none;user-select:none;pointer-events:none;border:1px solid #ffffff1f;border-radius:16px;min-width:260px;max-width:min(360px,100vw - 24px);position:fixed;box-shadow:0 18px 40px #02061761}.ghostFloatingStatus--glass{background:#141823e0}.ghostFloatingStatus--hud{background:linear-gradient(#0f172af7,#111827eb);border-color:#94a3b833}.ghostFloatingStatus--compact{background:#0f172aeb}.ghostFloatingStatus__handle{width:100%;color:inherit;font:inherit;cursor:grab;pointer-events:auto;background:#ffffff0a;border:0;border-bottom:1px solid #ffffff1a;border-radius:16px 16px 0 0;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.ghostFloatingStatus__dragHint,.ghostFloatingStatus__toolbar,.ghostFloatingStatus__row,.ghostFloatingStatus__captures,.ghostFloatingStatus__actions{font-size:.82rem}.ghostFloatingStatus__toolbar,.ghostFloatingStatus__body{pointer-events:auto;padding:10px 12px 12px}.ghostFloatingStatus__toolbar{justify-content:space-between;align-items:end;gap:10px;display:flex}.ghostFloatingStatus__appearanceLabel{gap:4px;display:grid}.ghostFloatingStatus__appearanceLabel select,.ghostFloatingStatus__toolbar button,.ghostFloatingStatus__actions button{color:inherit;background:#ffffff12;border:1px solid #ffffff24;border-radius:10px;padding:6px 10px}.ghostFloatingStatus__body{gap:10px;display:grid}.ghostFloatingStatus__row,.ghostFloatingStatus__captures{gap:4px;display:grid}.ghostFloatingStatus__row span,.ghostFloatingStatus__captures>span,.ghostFloatingStatus__captureRow strong{color:#e2e8f0c2;text-transform:uppercase;letter-spacing:.04em;font-size:.74rem}.ghostFloatingStatus__row strong,.ghostFloatingStatus__captureRow{color:#f8fafc}.ghostFloatingStatus__captureRows{gap:6px;display:grid}.ghostFloatingStatus__captureRow{background:#ffffff0d;border-radius:12px;grid-template-columns:auto 1fr 1fr;align-items:center;gap:10px;padding:8px 10px;display:grid}.ghostFloatingStatus__actions{flex-wrap:wrap;gap:8px;display:flex}.ghostFloatingStatus--collapsed .ghostFloatingStatus__body{display:none}.ghostLayout{align-items:stretch;gap:14px;position:relative}.ghostWrap{position:relative}.ghostWrap:before,.ghostWrap:after{content:"";pointer-events:none;z-index:0;position:fixed;inset:auto}.ghostWrap:before{background:radial-gradient(circle, color-mix(in srgb, var(--accent) 30%, transparent), transparent 65%);filter:blur(20px);opacity:.55;width:44vw;height:44vw;top:-10vw;right:-14vw}.ghostWrap:after{background:radial-gradient(circle, color-mix(in srgb, var(--ghost-dark) 22%, transparent), transparent 68%);filter:blur(26px);opacity:.42;width:42vw;height:42vw;bottom:-18vw;left:-16vw}.ghostSidebar,.ghostBoardColumn{z-index:1;position:relative}.ghostSidebar{gap:12px;max-width:460px}.ghostModeLaunchPanel,.ghostSettingsPanel{gap:12px;display:grid}.ghostSettingsGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.ghostSettingsGrid label{gap:8px;display:grid}.ghostSettingsGrid span,.ghostThemePicker span{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);font-size:.76rem;font-weight:800}.ghostModeLaunchBox{gap:10px;display:grid}.ghostBoardColumn{flex:1.2 1 0}.ghostControlPanel,.ghostEntryDialog,.ghostBoardPhaseCard,.ghostBoardHudCard,.ghostThemePicker,.ghostRulesCard,.ghostThemeCard,.ghostModeCard,.ghostBoard,.ghostBoardShell,.ghostMultiplayerBoardSurface .ghostBoard{border-radius:24px}.ghostHeaderHero{border:1px solid color-mix(in srgb, var(--border) 82%, white);background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 96%, white), var(--surface-soft));padding:14px 16px 13px;box-shadow:0 20px 36px #0f172a14}.ghostHeaderCopy{gap:6px;display:grid}.ghostHeaderCopy h2{font-size:1.7rem;line-height:1.06}.ghostHeaderCopy p{max-width:38ch}.ghostKicker,.ghostThemeCardMotif,.ghostModeCardBadge{background:color-mix(in srgb, var(--accent) 16%, transparent);width:fit-content;color:var(--accent);letter-spacing:.08em;text-transform:uppercase;border-radius:999px;align-self:start;padding:5px 10px;font-size:.72rem;font-weight:800;display:inline-flex}.ghostThemeShowcase{display:none}.ghostThemePicker--compact{justify-content:space-between;padding:12px 14px}.ghostThemeCard{border:1px solid var(--border-soft);background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 94%, white), var(--surface-soft));padding:12px;box-shadow:0 12px 24px #0f172a0f}.ghostThemeCard strong,.ghostModeCard strong{color:var(--text-title);margin-top:8px;font-size:.98rem;display:block}.ghostThemeCard p,.ghostModeCard p,.ghostModeCard small{color:var(--text-secondary);margin:6px 0 0;line-height:1.35}.ghostThemeCard.is-active{border-color:color-mix(in srgb, var(--accent) 36%, var(--border));box-shadow:0 0 0 1px var(--accent-ring), 0 18px 30px #0f172a14}.ghostThemeCard--tabletop{background:linear-gradient(#fff6e8,#f6ebdb)}.ghostThemeCard--nintendo{background:linear-gradient(#eef7ff,#e5f1ff)}.ghostThemeCard--strategy{color:#e8f1ff;background:linear-gradient(#0a0f1ef5,#0f1928f5)}.ghostThemeCard--strategy strong,.ghostThemeCard--strategy p{color:#e8f1ff}.ghostThemeCard--spooky{color:#f3ecff;background:linear-gradient(#22182f,#161022)}.ghostThemeCard--spooky strong,.ghostThemeCard--spooky p{color:#f3ecff}.ghostControlPanel{border:1px solid color-mix(in srgb, var(--border) 82%, white);background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 95%, white), var(--surface));padding:14px;box-shadow:0 18px 34px #0f172a14}.ghostUnifiedHudHeaderRow{align-items:start;gap:12px}.ghostUnifiedHudHeaderRow strong{font-size:1rem}.ghostUnifiedHudHeaderRow p,.ghostEntryHeader p,.ghostBoardPhaseReveal,.ghostBoardHudSummary,.ghostBoardHudStatusLine,.ghostBoardHudNote,.ghostSetupDifficultyHint,.ghostEntryInviteLink{color:var(--text-secondary)}.ghostBoardPhaseBanner{justify-content:center;align-items:center;gap:10px;display:flex}.ghostModeDeck{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.ghostModeCard{text-align:left;border:1px solid var(--border-soft);background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 98%, white), var(--surface-soft));align-content:start;gap:8px;min-height:168px;padding:18px;display:grid;box-shadow:0 18px 32px #0f172a14}.ghostModeCard--solo{background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 10%, var(--surface)), var(--surface-soft))}.ghostModeCard--online{background:linear-gradient(180deg, color-mix(in srgb, var(--ghost-dark) 12%, var(--surface)), var(--surface-soft))}.ghostModeCardButton:hover:not(:disabled),.ghostButton:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 18px 28px #0f172a24}.ghostButton{border:1px solid var(--border-soft);background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 94%, white), var(--surface-muted));min-height:46px;box-shadow:0 10px 20px #0f172a14}.ghostButtonPrimary,.ghostPrimaryAction{border-color:color-mix(in srgb, var(--accent) 32%, var(--border));background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 92%, white), var(--accent-hover));color:#fff;box-shadow:0 16px 28px var(--accent-ring)}.ghostButtonSecondary{background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 95%, white), var(--surface-soft))}.ghostButton:focus-visible,.ghostModeCard:focus-visible,.ghostThemePicker select:focus-visible{outline:3px solid var(--accent-ring);outline-offset:2px}.ghostBoardShell,.ghostBoardStage,.ghostBoard,.ghostMultiplayerBoardSurface{background:0 0}.ghostBoard,.ghostMultiplayerBoardSurface .ghostBoard,.ghostBoardShell,.ghostSettingsPanel,.ghostReplayPanel{scroll-margin:16px}.ghostBoardShell{border:1px solid color-mix(in srgb, var(--border) 70%, white);background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 92%, white), var(--surface-soft));padding:14px;box-shadow:0 24px 42px #0f172a1a}.ghostBoardStage{background:linear-gradient(180deg, color-mix(in srgb, var(--surface-muted) 80%, white), color-mix(in srgb, var(--surface-soft) 90%, white));border-radius:20px;padding:10px}.ghostBoard{border:1px solid color-mix(in srgb, var(--border-strong) 70%, var(--border));background:radial-gradient(circle at 20% 20%, #ffffff38, transparent 26%), linear-gradient(135deg, color-mix(in srgb, var(--ghost-light) 60%, white), var(--ghost-dark));gap:6px;padding:8px;box-shadow:inset 0 1px #ffffff6b,0 16px 28px #0f172a1a}.ghostSquare{background:radial-gradient(circle at 30% 28%,#ffffff2e,#0000 30%),linear-gradient(#ffffff1c,#ffffff0a);border:1px solid #ffffff29;border-radius:14px;box-shadow:inset 0 1px #ffffff1f}.ghostSquare:focus-visible,.ghostBoardCell:focus-visible,.ghostEscapeAction:focus-visible{outline:3px solid var(--accent-ring);outline-offset:2px}.ghostSquare.light{background:radial-gradient(circle at 25% 25%,#fff3,#0000 32%),linear-gradient(#ffffff3d,#ffffff1f)}.ghostSquare.dark{background:radial-gradient(circle at 25% 25%,#ffffff1a,#0000 32%),linear-gradient(#1118271f,#11182733)}.ghostSquare.selected,.ghostSquare[data-selected=true]{box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 58%, transparent), 0 0 16px var(--accent-ring)}.ghostSquare.target,.ghostSquare[data-target=true]{box-shadow:0 0 0 2px var(--accent-ring), inset 0 0 0 999px #ffffff0a}.ghostSquare.escapeReady{box-shadow:0 0 0 2px #22c55e66,0 0 14px #22c55e29}.ghostSquare.lastMove{outline:1px solid #ffffff3d}.ghostSquare.exit{box-shadow:inset 0 0 0 1px #ffffff24}.ghostBoardCell{background:linear-gradient(#ffffff24,#ffffff0a);border:1px solid #ffffff2e;border-radius:14px;box-shadow:inset 0 1px #fff3}.ghostBoardCell.is-target,.ghostBoardCell.legalMoveTarget{box-shadow:0 0 0 2px var(--accent-ring), inset 0 0 0 999px #ffffff0d}.ghostBoardCell.is-selected,.ghostBoardCell.selected{box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 55%, transparent), 0 0 28px var(--accent-ring)}.ghostToken{border:1px solid #ffffff24;overflow:hidden;box-shadow:0 10px 16px #0f172a24}.ghostToken:before{content:"";opacity:.5;background:linear-gradient(#ffffff5c,#0000);border-radius:999px;height:38%;position:absolute;inset:8% 10% auto}.ghostToken:after{content:"";opacity:.38;background:radial-gradient(circle,#0000002e,#0000 70%);border-radius:999px;height:16%;position:absolute;inset:auto 16% 12%}.ghostToken.boardPiece,.ghostToken.legendPiece,.ghostToken.capturedPiece{background:linear-gradient(#ffffff42,#ffffff1a)}.ghostToken.token-good{color:#1f8a5b}.ghostToken.token-bad{color:#d44f4f}.ghostToken.token-unknown{color:#54637a}.ghostToken.owner-player,.ghostToken.owner-computer{transform:none}.ghostToken .ghostIcon{filter:drop-shadow(0 1px 2px #0000001f)}.ghostBoardHudCard,.ghostEntryDialog,.ghostMultiplayerRpsModalCard,.ghostBoardPhaseCard{-webkit-backdrop-filter:blur(14px)saturate(1.08);backdrop-filter:blur(14px)saturate(1.08)}.ghostTurnBanner{background:color-mix(in srgb, var(--surface-strong) 74%, transparent);border:1px solid color-mix(in srgb, var(--border-soft) 70%, transparent);color:var(--text-strong);text-align:center;border-radius:999px;margin:0;padding:.55rem .8rem;font-weight:700;line-height:1.2}.ghostTurnBanner--gameOver{background:color-mix(in srgb, var(--surface-strong) 82%, transparent)}.ghostSetupDifficultyRow select,.ghostThemePicker select,.ghostEntryField input{border:1px solid var(--border-soft);background:color-mix(in srgb, var(--surface) 94%, white)}@media (width<=920px){.ghostLayout{grid-template-columns:minmax(0,1fr)}.ghostBoardColumn{order:-1}.ghostSidebar{max-width:none}.ghostControlColumn{max-height:none;position:relative;overflow:visible}.ghostThemeShowcase,.ghostModeDeck{grid-template-columns:1fr}.ghostBoardShell{padding:12px}.ghostBoard{gap:6px;padding:8px}.ghostTurnBanner{font-size:.92rem}}@media (width<=560px){.ghostHeaderHero,.ghostControlPanel,.ghostEntryDialog,.ghostBoardShell{border-radius:20px}.ghostModeCard{min-height:144px}.ghostBoardHudCard,.ghostEntryDialog,.ghostControlPanel{min-width:0}.ghostBoardShell{padding:10px}.ghostBoard{gap:4px;padding:6px}.ghostTurnBanner{padding:.45rem .65rem;font-size:.88rem}.ghostBoardHudSummary,.ghostBoardHudStatusLine,.ghostBoardHudPrimaryCopy{font-size:.93rem}.ghostSettingsGrid{grid-template-columns:1fr}details.ghostSettingsPanel>summary{min-height:44px}.ghostControlPanel,.ghostBoardShell,.ghostEntryDialog,.ghostHeaderHero{padding-left:10px;padding-right:10px}}.ghostBoard{border:1px solid color-mix(in srgb, var(--border-strong) 78%, transparent);background-color:color-mix(in srgb, var(--surface) 92%, white);box-shadow:0 34px 72px #0f172a3d,inset 0 2px #ffffff3d,inset 0 0 0 1px #ffffff14}.ghostSquare{background:linear-gradient(180deg, color-mix(in srgb, var(--ghost-board-square-light,#ffffff8c) 86%, transparent), transparent 66%), linear-gradient(135deg, var(--ghost-board-square-light,#ffffff7a), var(--ghost-board-square-dark,#0000001a));border-radius:0;place-items:center;display:grid;box-shadow:inset 0 0 0 1px #0f172a14,inset 0 18px 28px #ffffff1a,inset 0 -14px 22px #0f172a0d}.ghostSquare:before{opacity:.8;background:radial-gradient(circle at 50% 26%,#ffffff14,#0000 38%),linear-gradient(#ffffff0a,#0000 36%)}.ghostSquare:after{border-radius:18px;transition:border-color .14s,box-shadow .14s,background-color .14s,opacity .14s;inset:10%}.ghostSquare.target:after{border:2px solid color-mix(in srgb, var(--accent) 88%, white);box-shadow:0 0 0 5px var(--accent-ring-soft), 0 0 14px color-mix(in srgb, var(--accent) 20%, transparent);background:radial-gradient(circle at 50% 50%, color-mix(in srgb, var(--accent) 22%, transparent), transparent 70%), color-mix(in srgb, var(--accent) 10%, transparent);border-radius:24px;inset:14%}.ghostSquare.selected:after,.ghostSquare.setupSelected:after,.ghostSquare.escapeReady:after{border:2px solid color-mix(in srgb, var(--accent) 84%, white);box-shadow:0 0 0 4px var(--accent-ring-soft), 0 0 24px color-mix(in srgb, var(--accent) 20%, transparent);border-radius:20px;inset:8%}.ghostSquare.escapeReady:after{border-style:dashed}.ghostSquare.exit:after{border:2px dashed color-mix(in srgb, var(--accent) 78%, white);box-shadow:0 0 0 5px var(--accent-ring-soft);border-radius:22px;inset:14%}.ghostSquare.lastMoveFrom:after{border:1px solid color-mix(in srgb, var(--move-last) 70%, white);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--move-last) 24%, transparent);border-radius:20px;inset:16%}.ghostSquare.lastMoveTo:after{border:2px solid color-mix(in srgb, var(--move-last) 92%, white);box-shadow:0 0 0 4px color-mix(in srgb, var(--move-last) 16%, transparent), 0 0 14px color-mix(in srgb, var(--move-last) 18%, transparent);border-radius:21px;animation:.16s ease-out ghostLastMovePulse;inset:9%}.ghostSquare.lastMoveAi.lastMoveTo:after{border-color:color-mix(in srgb, var(--accent) 92%, white);box-shadow:0 0 0 5px color-mix(in srgb, var(--accent) 18%, transparent), 0 0 18px color-mix(in srgb, var(--accent) 28%, transparent)}.ghostSquare.captureMove.lastMoveTo:after{border-style:dashed}@keyframes ghostLastMovePulse{0%{opacity:.65;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.ghostBoard--thinking .ghostSquare:after{background:linear-gradient(#60a5fa1f,#60a5fa05);border:1px solid #60a5fa6b;border-radius:22px;inset:14%}.ghostBoard--thinking .ghostSquare.lastMoveTo:after,.ghostBoard--thinking .ghostSquare.lastMoveFrom:after,.ghostBoard--thinking .ghostSquare.target:after,.ghostBoard--thinking .ghostSquare.selected:after,.ghostBoard--thinking .ghostSquare.escapeReady:after{opacity:1}.ghostToken{--token-bg:linear-gradient(180deg, #eef2ff, #dbeafe);--token-border:#0f172a29;--token-ink:#0f172a;--token-glow:#ffffff52;--token-glow-opacity:.34;--token-radius:28%;--token-shadow:0 14px 22px #0f172a2e, inset 0 1px 0 #ffffffa8;--ghost-token-art-scale:1;isolation:isolate;border:1px solid var(--token-border);border-radius:var(--token-radius);background:var(--token-bg);width:100%;max-width:100%;color:var(--token-ink);box-shadow:var(--token-shadow);flex-direction:column;justify-content:center;align-items:center;gap:.06rem;display:flex;position:relative;inset:auto;overflow:hidden;transform:translateZ(0)}.ghostToken:before,.ghostToken:after{content:none}.ghostTokenArt{flex:auto;align-self:stretch;width:100%;min-height:2.1rem;position:relative}.ghostTokenBase,.ghostTokenGlow,.ghostTokenPlate,.ghostTokenRing,.ghostGhostBody,.ghostGhostFace,.ghostIcon{pointer-events:none;position:absolute;inset:0}.ghostTokenLabel{z-index:4;color:currentColor;letter-spacing:.08em;text-transform:uppercase;background:#fffffff0;border:1px solid #fffffff5;border-radius:999px;flex:none;width:fit-content;max-width:calc(100% - .36rem);padding:.1rem .3rem;font-size:.6rem;font-weight:1000;line-height:1;position:relative;box-shadow:0 1px 2px #0f172a29}.ghostTokenBase{filter:blur(5px);opacity:.9;z-index:0;background:radial-gradient(circle,#0f172a6b,#0f172a0f 70%,#0000 100%);border-radius:999px;height:16%;inset:auto 10% 7%}.ghostTokenGlow{border-radius:inherit;background:radial-gradient(circle at 50% 18%, var(--token-glow), transparent 34%), radial-gradient(circle at 50% 120%, #0f172a2e, transparent 48%);opacity:var(--token-glow-opacity);z-index:1;inset:3%}.ghostTokenPlate{z-index:1;background:linear-gradient(#ffffffb8,#ffffff2e);border-radius:24%;position:absolute;inset:12% 10% 18%;box-shadow:inset 0 1px #ffffffd1,inset 0 -8px 16px #0f172a14}.ghostTokenRing{border-radius:inherit;opacity:.92;z-index:2;border:.12rem solid;position:absolute;inset:8%;box-shadow:inset 0 0 0 .12rem #ffffff85,0 0 0 .08rem #0f172a0a}.ghostGhostBody{clip-path:polygon(50% 0%,65% 4%,77% 10%,86% 22%,89% 38%,85% 54%,88% 100%,74% 91%,65% 83%,55% 88%,45% 88%,35% 83%,26% 91%,12% 100%,15% 54%,11% 38%,14% 22%,23% 10%,35% 4%);background:linear-gradient(180deg, color-mix(in srgb, currentColor 24%, white), color-mix(in srgb, currentColor 30%, var(--token-bg)));z-index:2;opacity:.98;inset:16% 20% 22%;box-shadow:inset 0 1px #ffffff94,inset 0 -4px 10px #0f172a1f}.ghostGhostFace{z-index:3;color:currentColor;text-shadow:0 1px #ffffff52;place-items:center;display:grid;inset:24% 30% 30%}.ghostGhostFaceMark{opacity:.96;font-size:.8rem;font-weight:1000;line-height:1}.ghostPieceLabelsFull .ghostTokenLabel{letter-spacing:.03em;padding-inline:.42rem;font-size:.54rem}.ghostPieceLabelsFull .ghostToken.boardPiece .ghostTokenLabel{font-size:.5rem}.ghostToken.boardPiece .ghostTokenLabel{max-width:calc(100% - .45rem)}.ghostMotionReduced *,.ghostMotionReduced :before,.ghostMotionReduced :after{scroll-behavior:auto!important}.ghostMotionReduced .ghostButton,.ghostMotionReduced .ghostSquare,.ghostMotionReduced .ghostToken,.ghostMotionReduced .ghostBoardHudCard,.ghostMotionReduced .ghostControlPanel,.ghostMotionReduced .ghostBoardPhaseCard,.ghostMotionReduced .ghostReplayPanel,.ghostMotionReduced .ghostSettingsPanel{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.ghostTokenOwnerChip{display:none}.ghostToken.boardPiece{aspect-ratio:1;width:min(86%,4.5rem);max-width:4.2rem;padding:.12rem .08rem .1rem}.ghostToken.boardPiece .ghostTokenArt{min-height:calc(100% - .92rem)}.ghostToken.boardPiece .ghostTokenLabel{margin-top:0;transform:none}.ghostToken.token-good{--token-bg:linear-gradient(180deg, #ecfff7, #c5f4e1);--token-border:#14b8a657;--token-ink:#0f766e;--token-glow:#2dd4bf6b;--token-glow-opacity:.3;color:#0f766e}.ghostToken.token-bad{--token-bg:linear-gradient(180deg, #fff1ef, #ffd0c7);--token-border:#ef444457;--token-ink:#b91c1c;--token-glow:#f871716b;--token-glow-opacity:.3;color:#b91c1c}.ghostToken.token-unknown{--token-bg:linear-gradient(180deg, #f2f4f8, #dfe5ee);--token-border:#47556947;--token-ink:#475569;--token-glow:#94a3b83d;--token-glow-opacity:.2;color:#475569}.ghostToken.token-style-cute,.ghostToken.token-style-mystic,.ghostToken.token-style-minimal,.ghostToken.token-style-neon,.ghostToken.token-style-paper,.ghostToken.token-style-shadow,.ghostToken.token-style-mask,.ghostToken.token-style-spirit,.ghostToken.token-style-lantern,.ghostToken.token-style-phantom,.ghostToken.token-style-skull,.ghostToken.token-style-wisp,.ghostToken.token-style-rune{--ghost-token-art-scale:1.02}.ghostToken.token-style-minimal .ghostIcon,.ghostToken.token-style-paper .ghostIcon,.ghostToken.token-style-shadow .ghostIcon,.ghostToken.token-style-phantom .ghostIcon,.ghostToken.token-style-wisp .ghostIcon{opacity:.56;filter:grayscale()contrast(1.08);width:74%;height:74%}.ghostToken.token-style-neon .ghostTokenLabel,.ghostToken.token-style-rune .ghostTokenLabel,.ghostToken.token-style-lantern .ghostTokenLabel,.ghostToken.token-style-skull .ghostTokenLabel{box-shadow:0 0 0 1px #ffffff57,0 2px 4px #0f172a2e}.ghostToken.legendPiece,.ghostToken.capturedPiece{aspect-ratio:1;width:100%;max-width:2.55rem}.ghostToken.capturedPiece{max-width:1.85rem}@media (width<=560px){.ghostBoard{border-radius:18px}.ghostSquare.selected:after,.ghostSquare.setupSelected:after,.ghostSquare.escapeReady:after{inset:7%}.ghostToken.boardPiece{width:min(88%,3.85rem);padding:.09rem .06rem .07rem}.ghostToken.boardPiece .ghostTokenArt{min-height:calc(100% - .84rem)}}
