:root{color-scheme:dark;--bg: #0b1020;--bg-2: #111a33;--panel: #141d38;--line: #273457;--ink: #e8ecf5;--ink-dim: #93a0c2;--cyan: #8ecfe0;--cyan-deep: #3aa6c4;--magenta: #ef5da8;--lime: #b7e25a;--amber: #f2b84b;--red: #ff6b6b;--gb: #9bbc0f;--gb-dark: #306230;--gb-deep: #0f380f;--sq-light: #e8e4d8;--sq-dark: #4d6b8f;--radius: 10px;--font: "Segoe UI", system-ui, -apple-system, Roboto, sans-serif;--mono: ui-monospace, "Cascadia Mono", Consolas, Menlo, monospace}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{background:radial-gradient(1200px 600px at 50% -10%,#182448 0%,var(--bg) 60%);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.45}img{display:block}.btn{border:1px solid var(--line);background:var(--bg-2);color:var(--ink);border-radius:8px;padding:8px 14px;font-weight:600;letter-spacing:.01em;transition:background .12s ease,border-color .12s ease,transform 80ms ease}.btn:hover:not(:disabled){border-color:var(--cyan-deep);background:#182448}.btn:active:not(:disabled){transform:translateY(1px)}.btn.primary{background:linear-gradient(180deg,var(--cyan) 0%,var(--cyan-deep) 100%);color:#06131c;border-color:transparent}.btn.primary:hover:not(:disabled){filter:brightness(1.06);background:linear-gradient(180deg,var(--cyan) 0%,var(--cyan-deep) 100%)}.btn.ghost{background:transparent}.btn.big{padding:12px 26px;font-size:18px;border-radius:10px}.setup{min-height:100vh;display:grid;place-items:center;padding:24px 16px}.setup-card{width:min(560px,100%);background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:22px 22px 18px;box-shadow:0 20px 60px #00000073}.setup-card h1{margin:18px 0 6px;font-size:clamp(28px,6vw,40px);letter-spacing:-.01em}.lede{margin:0 0 18px;color:var(--ink-dim);line-height:1.5}.field{display:grid;gap:8px;margin:14px 0}.field-label{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-dim)}.seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--bg-2)}.seg button{border:0;background:transparent;padding:10px 18px;flex:1;transition:background .12s ease}.seg button+button{border-left:1px solid var(--line)}.seg button.on{background:var(--cyan);color:#06131c;font-weight:700}.setup-card .btn.big{margin-top:10px;width:100%}.fine{margin:12px 0 0;font-size:13px;color:var(--ink-dim)}.game{min-height:100vh;display:grid;grid-template-columns:1fr;grid-template-areas:"top" "arena" "panel";gap:12px;padding:12px 16px 24px;max-width:1120px;margin:0 auto}.top{grid-area:top}.arena{grid-area:arena;display:grid;gap:8px;justify-items:center}.panel{grid-area:panel;display:grid;gap:10px;align-content:start}@media(min-width:900px){.game{grid-template-columns:minmax(0,1fr) 320px;grid-template-areas:"top top" "arena panel";align-items:start;padding-top:18px}.arena{align-self:start}}.miles{display:grid;grid-template-columns:96px 1fr;gap:12px;align-items:center}.miles-portrait{width:96px;height:96px;border-radius:12px;background:linear-gradient(180deg,var(--gb) 0%,#8bac0f 100%);border:3px solid var(--gb-deep);box-shadow:inset 0 0 0 2px var(--gb-dark),0 6px 18px #0006;overflow:hidden;display:grid;place-items:end center}.miles-portrait img{width:100%;height:100%;image-rendering:pixelated;image-rendering:crisp-edges}.miles-side{min-width:0;display:grid;gap:6px}.miles-name{font-weight:800;letter-spacing:.02em;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.miles-caption{font-weight:500;font-size:12px;color:var(--cyan);letter-spacing:.02em}.bubble{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 14px;min-height:42px;line-height:1.4;animation:bubble-in .22s ease-out}.bubble:before{content:"";position:absolute;left:-7px;top:16px;width:12px;height:12px;background:var(--panel);border-left:1px solid var(--line);border-bottom:1px solid var(--line);transform:rotate(45deg)}@keyframes bubble-in{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}.mood-think .miles-portrait{box-shadow:inset 0 0 0 2px var(--gb-dark),0 0 0 3px #8ecfe059}.side-row{width:min(100%,640px);display:flex;align-items:center;gap:10px}.clock{display:inline-flex;align-items:baseline;gap:10px;padding:6px 12px;border-radius:8px;background:var(--bg-2);border:1px solid var(--line);min-width:132px;transition:background .12s ease,border-color .12s ease}.clock-label{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-dim)}.clock-time{font-family:var(--mono);font-size:24px;font-weight:700;font-variant-numeric:tabular-nums}.clock.is-active{background:#1a2a4a;border-color:var(--cyan-deep)}.clock.is-low .clock-time{color:var(--amber)}.clock.is-critical .clock-time{color:var(--red)}.clock.is-critical.is-active{animation:pulse 1s ease-in-out infinite}@keyframes pulse{50%{border-color:var(--red)}}.material{font-family:var(--mono);color:var(--lime);font-weight:700;min-width:32px}.actions{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.actions .btn{padding:6px 10px;font-size:13px}.board-wrap{position:relative;width:min(100%,640px,calc(100vh - 260px));min-width:260px;padding:0 0 16px 16px}.board{position:relative;aspect-ratio:1;width:100%;border-radius:4px;overflow:hidden;box-shadow:0 12px 40px #0000008c,0 0 0 1px #0009;touch-action:none;user-select:none;-webkit-user-select:none}.board.loading{background:var(--panel);display:grid;place-items:center;text-align:center;padding:24px}.loading-text{display:grid;gap:10px;justify-items:center;font-weight:600}.loading-text small{color:var(--ink-dim);font-weight:400}.sq{position:absolute;width:12.5%;height:12.5%;padding:0;margin:0;border:0;display:flex;align-items:center;justify-content:center}.sq.light{background:var(--sq-light)}.sq.dark{background:var(--sq-dark)}.sq.last-move:after,.sq.selected:after,.sq.in-check:after{content:"";position:absolute;inset:0;pointer-events:none}.sq.last-move:after{background:#f2b84b61}.sq.selected:after{box-shadow:inset 0 0 0 3px var(--cyan);background:#8ecfe040}.sq.in-check:after{background:radial-gradient(circle at 50% 50%,rgba(255,70,70,.85) 0%,transparent 70%);animation:check-pulse 1.1s ease-in-out infinite}@keyframes check-pulse{0%,to{opacity:.55}50%{opacity:1}}.target-dot{width:28%;height:28%;border-radius:50%;background:#141d3873;pointer-events:none}.sq.dark .target-dot{background:#e8e4d866}.target-capture{position:absolute;inset:5%;border-radius:50%;border:4px solid rgba(255,107,107,.8);pointer-events:none}.board.is-locked .sq{cursor:default}.piece-slot{position:absolute;width:12.5%;height:12.5%;display:flex;align-items:center;justify-content:center;cursor:default;transition:left .18s cubic-bezier(.2,.9,.3,1),top .18s cubic-bezier(.2,.9,.3,1);will-change:left,top}.piece-slot.mine{cursor:grab}.piece-slot.dragging{transition:none;z-index:5;cursor:grabbing;filter:drop-shadow(0 8px 10px rgba(0,0,0,.6))}.piece{width:86%;height:86%;pointer-events:none;filter:drop-shadow(0 2px 2px rgba(0,0,0,.45))}.piece-w path{fill:#f7f3ea;stroke:#2a2420;stroke-width:1.1;stroke-linejoin:round}.piece-b path{fill:#141018;stroke:#cfc6b4;stroke-width:1.2;stroke-linejoin:round}.piece-ghost{position:absolute;width:12.5%;height:12.5%;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:4;animation:ghost-out .4s ease-out forwards}@keyframes ghost-out{to{opacity:0;transform:scale(1.4);filter:brightness(2)}}.coords{position:absolute;display:flex;font-family:var(--mono);font-size:11px;color:var(--ink-dim);pointer-events:none}.coords-files{left:16px;right:0;bottom:0;justify-content:space-around}.coords-ranks{left:0;top:0;bottom:16px;width:14px;flex-direction:column;justify-content:space-around;align-items:center}.moves{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:grid;grid-template-rows:auto 1fr}.moves-opening{padding:10px 12px;font-size:13px;font-weight:600;color:var(--cyan);border-bottom:1px solid var(--line);background:var(--bg-2)}.moves-list{list-style:none;margin:0;padding:6px 0;max-height:320px;overflow-y:auto;font-family:var(--mono);font-size:14px}.moves-list li{display:grid;grid-template-columns:36px 1fr 1fr;padding:3px 12px}.moves-list li:nth-child(odd){background:#ffffff06}.moves-no{color:var(--ink-dim)}@media(min-width:900px){.moves-list{max-height:calc(100vh - 360px);min-height:200px}}.overlay{position:fixed;inset:0;display:grid;place-items:center;background:#0508129e;padding:16px;z-index:20;animation:bubble-in .16s ease-out}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px 22px;text-align:center;width:min(420px,100%);box-shadow:0 24px 70px #0009}.card-title{font-size:26px;font-weight:800}.card-sub{color:var(--ink-dim);margin-top:4px}.card.result.won .card-title{color:var(--lime)}.card-actions{display:flex;gap:8px;justify-content:center;margin-top:16px;flex-wrap:wrap}.promo-row{display:flex;gap:8px;justify-content:center;margin-top:14px}.promo{width:64px;height:64px;border-radius:10px;border:1px solid var(--line);background:var(--sq-dark);display:grid;place-items:center}.promo:hover{border-color:var(--cyan)}.promo .piece{width:80%;height:80%}@media(max-width:520px){.game{padding:10px 12px 20px;gap:10px}.miles{grid-template-columns:72px 1fr;gap:10px}.miles-portrait{width:72px;height:72px}.bubble{padding:8px 12px;min-height:38px;font-size:14px}.clock{min-width:110px;padding:5px 10px}.clock-time{font-size:20px}.actions .btn{padding:6px 8px;font-size:12px}.board-wrap{width:100%}}
