:root{--bg: #080b14;--bg-elevated: #111726;--bg-panel: #161d31;--bg-cell: #1e2740;--line: #263150;--line-strong: #35426b;--text: #eef2ff;--text-muted: #9aa7c7;--text-dim: #6c7899;--human: #4fd1c5;--human-soft: rgba(79, 209, 197, .16);--ai: #a78bfa;--ai-soft: rgba(167, 139, 250, .16);--ok: #34d399;--warn: #fbbf24;--danger: #f87171;--radius: 14px;--radius-sm: 9px;--gap: 2.6%;--tile-motion: .16s;--shadow: 0 18px 44px rgba(0, 0, 0, .45);color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:radial-gradient(1100px 620px at 12% -8%,rgba(79,209,197,.09),transparent 60%),radial-gradient(1000px 600px at 88% 4%,rgba(167,139,250,.1),transparent 62%),var(--bg);color:var(--text);font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;font-size:15px;line-height:1.5;min-height:100dvh;-webkit-font-smoothing:antialiased}code{font-family:JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:.92em;color:var(--text-muted)}.app{max-width:1360px;margin:0 auto;padding:clamp(14px,2.2vw,30px);display:flex;flex-direction:column;gap:clamp(14px,1.8vw,22px)}.arena{display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,1.8vw,22px);align-items:start}.app-header{display:grid;grid-template-columns:minmax(220px,1fr) minmax(0,2fr) minmax(230px,auto);gap:18px;align-items:center;padding:clamp(14px,1.6vw,20px);background:linear-gradient(180deg,var(--bg-elevated),var(--bg-panel));border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.app-header__brand h1{margin:0;font-size:clamp(19px,2.1vw,26px);font-weight:700;letter-spacing:-.02em}.app-header__brand h1 span{background:linear-gradient(96deg,var(--human),var(--ai));-webkit-background-clip:text;background-clip:text;color:transparent}.app-header__brand p{margin:4px 0 0;color:var(--text-muted);font-size:13px}.app-header__setup{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:flex-end}.field{display:flex;flex-direction:column;gap:4px;min-width:0}.field__label{font-size:11px;text-transform:uppercase;letter-spacing:.09em;color:var(--text-dim);font-weight:600}.field__row{display:flex;gap:4px}.field select,.field input[type=text]{background:var(--bg-cell);color:var(--text);border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:7px 9px;font:inherit;font-size:13px;min-width:84px}.field--seed input{width:118px;font-family:JetBrains Mono,ui-monospace,monospace;letter-spacing:.06em}.field__row button{background:var(--bg-cell);border:1px solid var(--line-strong);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;padding:0 10px;font-size:15px}.field--check{flex-direction:row;align-items:center;gap:7px;font-size:13px;color:var(--text-muted);padding-bottom:7px}.field select:disabled,.field input:disabled,.field__row button:disabled{opacity:.45;cursor:not-allowed}.field select:focus-visible,.field input:focus-visible,button:focus-visible,summary:focus-visible,a:focus-visible{outline:2px solid var(--human);outline-offset:2px}.mcp-status{display:flex;align-items:center;gap:10px;padding:10px 13px;border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--bg-cell);font-size:12.5px}.mcp-status__dot{width:9px;height:9px;border-radius:50%;flex:none;background:var(--text-dim)}.mcp-status--green .mcp-status__dot{background:var(--ok);box-shadow:0 0 0 4px #34d3992e}.mcp-status--amber .mcp-status__dot{background:var(--warn);box-shadow:0 0 0 4px #fbbf2429}.mcp-status--red .mcp-status__dot{background:var(--danger);box-shadow:0 0 0 4px #f8717129}.mcp-status--grey .mcp-status__dot{animation:pulse 1.3s ease-in-out infinite}.mcp-status--green{border-color:#34d39966}.mcp-status--amber{border-color:#fbbf2466}.mcp-status--red{border-color:#f8717166}.mcp-status__text{display:flex;flex-direction:column;line-height:1.35;min-width:0}.mcp-status__text strong{font-size:13px}.mcp-status__text span{color:var(--text-dim);font-size:11.5px}.mcp-status__tools summary{cursor:pointer;color:var(--text-muted);font-size:11.5px}.mcp-status__tools ul{position:absolute;z-index:20;margin:6px 0 0;padding:8px 12px;list-style:none;background:var(--bg-panel);border:1px solid var(--line-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow)}.mcp-status__tools li{padding:2px 0;white-space:nowrap}.mcp-status__tools ul:has(.mcp-status__problem){max-width:min(340px,80vw)}.mcp-status__problem,.mcp-status__tools ul:has(.mcp-status__problem) li{white-space:normal}.mcp-status__problem{color:var(--warn);padding-bottom:6px!important;border-bottom:1px solid var(--line);margin-bottom:4px}.mcp-status__surface{color:var(--text-dim);border-top:1px solid var(--line);margin-top:4px;padding-top:5px!important}.mcp-status__link{color:var(--warn);font-size:11.5px;white-space:nowrap}.scoreboard{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;padding:12px clamp(14px,1.6vw,20px);background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--radius)}.scoreboard__label{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);font-weight:600}.scoreboard__round strong{font-size:20px;font-variant-numeric:tabular-nums}.scoreboard__round--free strong{display:flex;align-items:baseline;gap:7px;font-size:17px}.scoreboard__moves-human{color:var(--human)}.scoreboard__moves-ai{color:var(--ai)}.scoreboard__moves-sep{color:var(--text-dim)}.scoreboard__status--running{color:var(--text);border-color:var(--line-strong);background:linear-gradient(96deg,var(--human-soft),var(--ai-soft))}.scoreboard__versus{display:flex;align-items:center;justify-content:center;gap:16px}.scoreboard__side{display:flex;align-items:baseline;gap:8px}.scoreboard__side em{font-style:normal;color:var(--text-dim);font-size:12px;text-transform:uppercase;letter-spacing:.08em}.scoreboard__side strong{font-size:clamp(20px,2.4vw,28px);font-variant-numeric:tabular-nums;color:var(--human)}.scoreboard__side--ai strong{color:var(--ai)}.scoreboard__vs{color:var(--text-dim);font-size:12px}.scoreboard__status{margin:0;padding:5px 13px;border-radius:999px;font-size:12.5px;font-weight:600;border:1px solid var(--line-strong);color:var(--text-muted);white-space:nowrap}.scoreboard__status--waiting_human{color:var(--human);border-color:#4fd1c573;background:var(--human-soft)}.scoreboard__status--waiting_ai{color:var(--ai);border-color:#a78bfa73;background:var(--ai-soft)}.scoreboard__status--paused{color:var(--warn);border-color:#fbbf2473}.scoreboard__status--finished{color:var(--text);border-color:var(--line-strong);background:var(--bg-cell)}.board-card{background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(12px,1.4vw,18px);display:flex;flex-direction:column;gap:12px;transition:border-color .18s ease,box-shadow .18s ease}.board-card.is-active{border-color:var(--human);box-shadow:0 0 0 1px var(--human-soft),0 16px 40px #4fd1c517}.board-card--ai.is-active{border-color:var(--ai);box-shadow:0 0 0 1px var(--ai-soft),0 16px 40px #a78bfa1a}.board-card__head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.board-card__title{margin:0;font-size:16px;display:flex;align-items:center;gap:8px}.board-card__dot{width:9px;height:9px;border-radius:3px;background:var(--human)}.board-card__dot--ai{background:var(--ai);border-radius:50%}.board-card__subtitle{margin:3px 0 0;color:var(--text-dim);font-size:11.5px}.board-card__stats{display:flex;gap:16px;margin:0}.board-card__stats dt{font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:var(--text-dim);font-weight:600}.board-card__stats dd{margin:2px 0 0;font-size:19px;font-variant-numeric:tabular-nums;font-weight:700}.board-card__turn{margin:0;font-size:12px;font-weight:600;color:var(--text-dim);display:flex;align-items:center;gap:7px}.board-card__turn:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.5}.board-card__turn.is-active{color:var(--text)}.board-card__turn.is-active:before{opacity:1;animation:pulse 1.3s ease-in-out infinite}.board-card__note{margin:0;color:var(--text-muted);font-size:13px}.board-card--info{gap:14px}.board-grid{position:relative;aspect-ratio:1;width:100%;max-width:410px;margin-inline:auto;padding:var(--gap);background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--radius);display:flex;flex-direction:column;gap:var(--gap);touch-action:none;-webkit-user-select:none;user-select:none;container-type:inline-size}.board-grid__row{display:flex;gap:var(--gap);flex:1}.board-grid__cell{flex:1;border-radius:var(--radius-sm);background:var(--bg-cell)}.board-grid__tiles{position:absolute;inset:var(--gap);pointer-events:none}.tile{--cell: calc((100% - 3 * var(--gap)) / 4);position:absolute;width:var(--cell);height:var(--cell);left:calc(var(--tile-x) * (var(--cell) + var(--gap)));top:calc(var(--tile-y) * (var(--cell) + var(--gap)));display:grid;place-items:center;border-radius:var(--radius-sm);font-weight:700;font-variant-numeric:tabular-nums;transition:left var(--tile-motion) cubic-bezier(.22,.7,.3,1),top var(--tile-motion) cubic-bezier(.22,.7,.3,1);will-change:left,top}.tile__value{font-size:clamp(15px,4.4cqw,34px)}.tile--ghost{z-index:1}.tile--merged{z-index:3;animation:merge-pop var(--tile-motion) ease-out}.tile--spawned{z-index:2;animation:spawn-pop .18s ease-out}.tile--v2{background:#24304d;color:#cdd8f5}.tile--v4{background:#2b3d63;color:#dbe4ff}.tile--v8{background:#256b74;color:#e6fffb}.tile--v16{background:#1f8a86;color:#f0fffd}.tile--v32{background:#2f8ec4;color:#f2faff}.tile--v64{background:#4f6fd8;color:#f4f6ff}.tile--v128{background:#7355e0;color:#f8f5ff;font-size:.94em}.tile--v256{background:#9448d8;color:#fdf6ff;font-size:.94em}.tile--v512{background:#c0399f;color:#fff5fc;font-size:.94em}.tile--v1024{background:#e0556b;color:#fff6f7;font-size:.8em}.tile--v2048{background:linear-gradient(140deg,#f59e0b,#fbbf24);color:#201400;font-size:.8em;box-shadow:0 0 0 1px #fbbf2499,0 0 26px #fbbf2459}.tile--v4096{background:linear-gradient(140deg,#fbbf24,#fde68a);color:#201400;font-size:.76em}.board-grid__overlay{position:absolute;inset:0;display:grid;place-items:center;border-radius:var(--radius);background:#080b14c7;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);font-weight:700;letter-spacing:.04em;color:var(--warn);z-index:4}.suggestion{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:11px 13px;border:1px dashed rgba(167,139,250,.5);border-radius:var(--radius-sm);background:var(--ai-soft)}.suggestion__text{margin:0;display:flex;flex-direction:column;gap:2px;font-size:12.5px;min-width:0}.suggestion__text strong{color:var(--ai)}.suggestion__dir{text-transform:capitalize}.suggestion__text span{color:var(--text-muted)}.suggestion__empty{margin:0;font-size:12.5px;color:var(--text-dim)}.controls{display:flex;flex-direction:column;gap:11px;padding:clamp(12px,1.4vw,17px);background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--radius)}.controls__buttons{display:flex;gap:9px;flex-wrap:wrap}.btn{background:var(--bg-cell);color:var(--text);border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:9px 17px;font:inherit;font-size:13.5px;font-weight:600;cursor:pointer;transition:background .14s ease,border-color .14s ease,transform 90ms ease}.btn:hover:not(:disabled){background:var(--line);border-color:var(--line-strong)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.42;cursor:not-allowed}.btn--primary{background:linear-gradient(96deg,var(--human),#37b3a8);border-color:transparent;color:#04211f}.btn--primary:hover:not(:disabled){background:linear-gradient(96deg,#5fe0d4,var(--human))}.btn--ghost{background:transparent}.btn--small{padding:6px 13px;font-size:12.5px}.controls__prompt summary{cursor:pointer;color:var(--text-muted);font-size:12.5px}.controls__prompt p{margin:8px 0 0;padding:11px 13px;background:var(--bg-cell);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--text-muted);font-size:12.5px;font-family:JetBrains Mono,ui-monospace,monospace;line-height:1.6}.controls__demo{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid rgba(251,191,36,.32);border-radius:var(--radius-sm);background:#fbbf240f}.controls__demo span{display:flex;flex-direction:column;gap:2px;font-size:12px}.controls__demo strong{color:var(--warn)}.controls__demo em{font-style:normal;color:var(--text-dim)}.log{background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(12px,1.4vw,17px);display:flex;flex-direction:column;gap:10px;min-height:0}.log__head{display:flex;justify-content:space-between;align-items:baseline}.log__head h2{margin:0;font-size:14px}.log__count{font-size:11.5px;color:var(--text-dim)}.log__empty{margin:0;color:var(--text-dim);font-size:12.5px}.log__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;max-height:260px;overflow-y:auto;scrollbar-width:thin}.log__item{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:baseline;padding:7px 10px;border-radius:var(--radius-sm);background:var(--bg-cell);border-left:3px solid var(--line-strong);font-size:12.5px}.log__item--human{border-left-color:var(--human)}.log__item--ai{border-left-color:var(--ai)}.log__item--system{border-left-color:var(--text-dim)}.log__item--stale_revision,.log__item--ai_invalid,.log__item--human_invalid{border-left-color:var(--danger)}.log__item--match_finished{border-left-color:var(--warn);background:#fbbf2414}.log__meta{display:flex;align-items:center;gap:6px;white-space:nowrap}.log__round{color:var(--text-dim);font-family:JetBrains Mono,ui-monospace,monospace;font-size:11px}.log__actor{font-weight:600;font-size:11px;color:var(--text-muted)}.log__dir{font-size:14px;color:var(--text)}.log__delta{color:var(--ok);font-size:11px;font-weight:700}.log__message{color:var(--text-muted);overflow-wrap:anywhere}.modal-backdrop{position:fixed;inset:0;background:#04060cc2;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;padding:20px;z-index:60;animation:fade-in .16s ease-out}.modal{width:min(520px,100%);background:var(--bg-elevated);border:1px solid var(--line-strong);border-radius:18px;padding:clamp(18px,2.4vw,28px);box-shadow:var(--shadow);animation:modal-in .2s cubic-bezier(.2,.8,.3,1)}.modal h2{margin:0 0 6px;font-size:clamp(21px,3vw,28px)}.modal--human h2{color:var(--human)}.modal--ai h2{color:var(--ai)}.modal--draw h2,.modal--shared h2{color:var(--warn)}.modal__reason{margin:0 0 16px;color:var(--text-muted);font-size:13.5px}.modal__table{width:100%;border-collapse:collapse;font-size:13.5px}.modal__table th,.modal__table td{padding:8px 10px;text-align:right;border-bottom:1px solid var(--line)}.modal__table thead th,.modal__table tbody th{text-align:left;color:var(--text-dim);font-weight:600;font-size:12px}.modal__table thead th:not(:first-child){text-align:right}.modal__table td{font-variant-numeric:tabular-nums;font-weight:600}.modal__stats--shared{display:flex;gap:22px;margin:0}.modal__stats dt{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim)}.modal__stats dd{margin:3px 0 0;font-size:22px;font-weight:700;font-variant-numeric:tabular-nums}.modal__seed{margin:14px 0 18px;font-size:12px;color:var(--text-dim)}.modal__actions{display:flex;gap:9px}.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%);padding:10px 18px;border-radius:999px;background:var(--bg-panel);border:1px solid var(--danger);color:var(--text);font-size:13px;font-weight:600;box-shadow:var(--shadow);z-index:70;animation:fade-in .14s ease-out}.app-footer{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;color:var(--text-dim);font-size:11.5px;padding-top:4px}.app-footer p{margin:0}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}@keyframes spawn-pop{0%{transform:scale(.3);opacity:0}to{transform:scale(1);opacity:1}}@keyframes merge-pop{0%{transform:scale(.86)}60%{transform:scale(1.14)}to{transform:scale(1)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}@media(max-width:1080px){.app-header{grid-template-columns:1fr}}@media(max-width:860px){.arena{grid-template-columns:1fr}.scoreboard{grid-template-columns:1fr;gap:10px;text-align:center}.scoreboard__status{justify-self:center}.board-card__head{gap:8px}.log__list{max-height:190px}.app__log .log{max-height:300px;overflow:hidden}.controls__buttons .btn{flex:1 1 42%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}@media(prefers-contrast:more){:root{--text-muted: #cbd5f5;--text-dim: #a9b6d8;--line: #40507f;--line-strong: #5b6ca3}}
