:root{color-scheme:dark;--bg: #0f1419;--surface: #1c2129;--surface-alt: #252b34;--border: #2a3038;--text: #e8eaed;--text-dim: #9aa0a6;--accent: #81b64c;--accent-hover: #94c95f;--accent-ink: #0f1419;--input-bg: #181c22;--danger: #e26a6a}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}input{font:inherit;color:var(--text);background:var(--input-bg);border:1px solid var(--border);border-radius:6px;padding:.5rem .6rem;outline:none}input:focus{border-color:var(--accent)}button{font:inherit;font-weight:600;background:var(--accent);color:var(--accent-ink);border:none;border-radius:6px;padding:.6rem 1.2rem;cursor:pointer;transition:background .12s ease,transform 80ms ease}button:hover:not(:disabled){background:var(--accent-hover)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}button.secondary:hover:not(:disabled){background:var(--surface-alt)}.card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1rem}.muted{color:var(--text-dim)}.game-layout{display:grid;gap:2rem;grid-template-columns:minmax(0,1fr) 320px;align-items:start}.game-main,.game-sidebar{display:grid;gap:.5rem;min-width:0}.game-sidebar{gap:.75rem}.game-board-wrap{width:100%;max-width:min(80vh,100%);max-width:min(80svh,100%);margin:0 auto;position:relative;overflow:hidden}.game-status,.game-controls,.game-draw-card{width:100%;max-width:min(80vh,640px);max-width:min(80svh,640px);margin-left:auto;margin-right:auto}@media (max-width: 900px){.game-layout{grid-template-columns:1fr;gap:.75rem}.game-board-wrap,.game-status,.game-controls,.game-draw-card{max-width:100%}}.captures-card{display:grid;gap:.5rem}.captures-card-title{font-size:.8rem;letter-spacing:.05em;text-transform:uppercase}.captured-row{display:grid;grid-template-columns:3.25rem 1fr auto;align-items:center;gap:.5rem;min-height:1.6em;font-size:1.4rem;line-height:1}.captured-row .captured-label{font-size:.85rem}.captured-row .pieces{display:inline-flex;flex-wrap:wrap;letter-spacing:-.05em}.captured-row .advantage{font-size:.85rem;color:var(--text-dim)}.move-list-title{font-size:.8rem;margin-bottom:.5rem;letter-spacing:.05em;text-transform:uppercase}.move-list-grid{display:grid;grid-template-columns:2.5rem 1fr 1fr;gap:.2rem .85rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.35rem;line-height:1.15;max-height:60vh;overflow-y:auto}@media (max-width: 760px){.move-list-grid{max-height:220px}}.theme-thumb{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(4,1fr);width:40px;height:40px;border-radius:4px;overflow:hidden;flex-shrink:0;border:1px solid var(--border)}.theme-selector{position:relative}.theme-selector-trigger{display:flex;align-items:center;gap:.65rem;padding:.55rem .7rem;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:8px;width:100%;text-align:left;cursor:pointer;font:inherit;font-weight:500}.theme-selector-trigger:hover:not(:disabled){background:var(--surface-alt)}.theme-selector-text{display:flex;flex-direction:column;flex:1;min-width:0}.theme-selector-eyebrow{font-size:.7rem;letter-spacing:.05em;text-transform:uppercase}.theme-selector-label{font-size:.95rem}.theme-selector-caret{color:var(--text-dim)}.theme-selector-menu{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--surface);border:1px solid var(--border);border-radius:8px;z-index:10;padding:.4rem;display:grid;gap:.25rem;box-shadow:0 8px 20px #00000080}.theme-selector-option{display:flex;align-items:center;gap:.65rem;padding:.5rem .6rem;background:transparent;color:var(--text);border:1px solid transparent;border-radius:6px;width:100%;text-align:left;cursor:pointer;font:inherit;font-weight:500;font-size:.95rem}.theme-selector-option:hover:not(:disabled){background:var(--surface-alt)}.theme-selector-option.is-active{border-color:var(--accent)}.chess-piece{animation:piece-breath 3.2s ease-in-out infinite;transition:transform .13s cubic-bezier(.34,1.56,.64,1);transform-origin:center 75%;cursor:grab;will-change:transform}.chess-piece:hover{animation-play-state:paused;transform:scale(1.08) translateY(-4%)}.chess-piece:active{cursor:grabbing}.chess-piece.chess-piece--dragging{animation:piece-wiggle .55s ease-in-out infinite}@keyframes piece-breath{0%,to{transform:scale(1) translateY(0)}50%{transform:scale(1.03) translateY(-2%)}}@keyframes piece-wiggle{0%,to{transform:rotate(-5deg) scale(1.06)}50%{transform:rotate(5deg) scale(1.06)}}@media (prefers-reduced-motion: reduce){.chess-piece,.chess-piece.chess-piece--dragging{animation:none;transition:none}.chess-piece:hover{transform:none}}.laser-beam{clip-path:inset(0 100% 0 0);animation:laser-sweep .6s cubic-bezier(.16,1,.3,1) forwards}@keyframes laser-sweep{0%{clip-path:inset(0 100% 0 0);opacity:.85}25%{clip-path:inset(0 55% 0 0);opacity:1}50%{clip-path:inset(0 0% 0 0);opacity:1}78%{clip-path:inset(0 0% 0 0);opacity:1}to{clip-path:inset(0 0% 0 0);opacity:0}}@media (prefers-reduced-motion: reduce){.laser-beam{animation:none;opacity:0}}.laser-flash{opacity:0;transform:scale(.4);animation-timing-function:cubic-bezier(.16,1,.3,1);animation-fill-mode:forwards}.laser-flash--depart{animation-name:laser-flash-depart}.laser-flash--arrive{animation-name:laser-flash-arrive}.laser-flash--capture-defender{animation-name:laser-flash-capture-defender}.laser-flash--capture-attacker{animation-name:laser-flash-capture-attacker}.laser-flash--capture-defender,.laser-flash--capture-attacker{mix-blend-mode:screen}@keyframes laser-flash-depart{0%{transform:scale(.4);opacity:0}10%{transform:scale(1.6);opacity:1}35%{transform:scale(.9);opacity:.5}to{transform:scale(.5);opacity:0}}@keyframes laser-flash-arrive{0%{transform:scale(.4);opacity:0}50%{transform:scale(.4);opacity:0}62%{transform:scale(1.8);opacity:1}85%{transform:scale(1.3);opacity:.65}to{transform:scale(2);opacity:0}}@keyframes laser-flash-capture-defender{0%{transform:scale(.4);opacity:0}48%{transform:scale(.4);opacity:0}53%{transform:scale(1.9);opacity:1}58%{transform:scale(1.5);opacity:.4}62%{transform:scale(1.8);opacity:1}66%{transform:scale(1.3);opacity:.3}72%{transform:scale(1);opacity:0}to{transform:scale(1);opacity:0}}@keyframes laser-flash-capture-attacker{0%{transform:scale(.4);opacity:0}50%{transform:scale(.4);opacity:0}55%{transform:scale(1);opacity:.4}60%{transform:scale(1.5);opacity:1}65%{transform:scale(1.3);opacity:.5}70%{transform:scale(1.7);opacity:1}78%{transform:scale(2.3);opacity:1}88%{transform:scale(2.8);opacity:1}to{transform:scale(3);opacity:0}}@media (prefers-reduced-motion: reduce){.laser-flash{animation:none;opacity:0}}@keyframes check-pulse{0%,to{box-shadow:inset 0 0 0 3px #ff3c3cb3}50%{box-shadow:inset 0 0 0 5px #ff5a5af2}}@keyframes mate-pulse{0%,to{box-shadow:inset 0 0 0 4px #ff0000d9,inset 0 0 24px #f006}50%{box-shadow:inset 0 0 0 7px red,inset 0 0 32px #ff0000b3}}@keyframes attacker-pulse{0%,to{box-shadow:inset 0 0 0 3px #ffb43cb3}50%{box-shadow:inset 0 0 0 4px #ffdc64f2}}
