:root{--bg: #0f172a;--panel: #1e293b;--panel-2: #273449;--text: #e2e8f0;--muted: #94a3b8;--accent: #6366f1;--border: #334155;color-scheme:dark}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100%;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}.screen{max-width:1000px;margin:0 auto;padding:16px}h1{font-size:26px;margin:12px 0 4px}h2{font-size:18px;margin:0 0 10px}.subtitle{color:var(--muted);margin:0 0 20px}.card,.panel{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:16px;margin-bottom:14px}.row{display:flex;flex-wrap:wrap;gap:8px}button{cursor:pointer;border:1px solid var(--border);background:var(--panel-2);color:var(--text);border-radius:10px;padding:9px 14px;font-size:14px}button:hover{border-color:var(--accent)}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button.primary:hover{filter:brightness(1.1)}.chip.active{background:var(--accent);border-color:var(--accent);color:#fff}input{display:block;width:100%;margin-bottom:8px;padding:9px 12px;border-radius:10px;border:1px solid var(--border);background:var(--panel-2);color:var(--text);font-size:14px}.setup>.primary{width:100%;padding:14px;font-size:16px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}.meta{display:flex;gap:6px}.badge{background:var(--panel-2);border:1px solid var(--border);border-radius:999px;padding:4px 10px;font-size:12px;color:var(--muted)}.scores{display:flex;gap:12px;flex-wrap:wrap}.score{font-size:14px}.score b{font-size:16px}.cards{display:flex;flex-wrap:wrap;gap:10px}.card{width:150px;text-align:left;padding:12px;border-radius:12px;background:var(--panel-2);border:1px solid var(--border);cursor:pointer}.card:hover{border-color:var(--accent)}.card-name{font-weight:700;margin-bottom:6px}.card-desc{font-size:12px;color:var(--muted);line-height:1.5}.turn-hint{color:var(--muted);margin:0 0 12px}.board-panel{overflow-x:auto}.track{display:flex;gap:3px;min-width:max-content}.cell{width:44px;min-width:44px;height:64px;border:1px solid var(--border);border-radius:6px;background:var(--panel-2);display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:3px;position:relative}.cell-start{background:#14532d}.cell-finish{background:#7c2d12}.cell-star{background:#713f12}.cell-trip{background:#4c1d95}.cell-arrow{background:#0c4a6e}.cell-label{font-size:10px;color:var(--muted)}.cell-tokens{display:flex;flex-wrap:wrap;gap:2px;justify-content:center}.token{width:14px;height:14px;border-radius:50%;display:inline-block;border:2px solid rgba(255,255,255,.6);font-size:0}.token.finished{opacity:.45}.token.eliminated{filter:grayscale(1) opacity(.5)}.token.tripped{transform:scale(.8);border-style:dashed}.decision{position:sticky;bottom:8px;background:var(--panel);border:1px solid var(--accent);border-radius:14px;padding:14px;margin:12px 0;box-shadow:0 8px 30px #00000080}.decision-prompt{font-weight:600;margin-bottom:10px}.decision-options{display:flex;flex-wrap:wrap;gap:8px}.log{margin-top:12px;font-size:12px;color:var(--muted);display:flex;flex-direction:column;gap:3px}.log-item{border-left:3px solid var(--border);padding-left:8px}.log-move{border-color:#38bdf8}.log-ability{border-color:#a78bfa}.log-score{border-color:#fbbf24}.log-warn{border-color:#f87171;color:#fca5a5}.hands{margin-top:12px;display:flex;flex-direction:column;gap:6px}.hand{font-size:13px}.hand-name{font-weight:700;margin-right:8px}.hand-cards{color:var(--muted)}.results{padding-left:20px;font-size:18px;line-height:2}.results li{color:var(--text)}.muted{color:var(--muted);font-size:13px;font-weight:400}.big{width:100%;padding:14px;font-size:16px;margin-bottom:10px}.error-banner{background:#7f1d1d;border:1px solid #f87171;color:#fecaca;border-radius:10px;padding:10px 12px;margin-bottom:12px;font-size:14px}.card-selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent) inset;background:#313b57}.picker-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}.picker-selected{font-size:15px;color:var(--muted)}.picker-selected b{color:var(--text);font-size:17px}.board-panel .track{gap:6px;padding:4px 2px}.cell{border-radius:14px}.dice-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;pointer-events:none;display:flex;align-items:center;justify-content:flex-end;padding-right:12vw;background:#02061759}.dice-stage{perspective:600px}.dice-cube{width:120px;height:120px;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:8px;padding:10px;background:#f8fafc;border-radius:18px;box-shadow:0 18px 40px #0000008c;animation:dice-roll .42s linear infinite}.pip{border-radius:50%;background:transparent}.pip.on{background:#0f172a}@keyframes dice-roll{0%{transform:rotateX(0) rotateY(0) translateY(0)}25%{transform:rotateX(90deg) rotateY(45deg) translateY(-14px)}50%{transform:rotateX(180deg) rotateY(90deg) translateY(0)}75%{transform:rotateX(270deg) rotateY(135deg) translateY(-14px)}to{transform:rotateX(360deg) rotateY(180deg) translateY(0)}}.winner-banner{background:linear-gradient(135deg,#1e3a8a,#4c1d95);border:1px solid #6d28d9;border-radius:14px;padding:18px;text-align:center;margin-bottom:14px}.winner-title{font-size:14px;color:#c4b5fd;margin-bottom:6px}.winner-name{font-size:28px;font-weight:800;color:#fef9c3}.winner-sub{margin-top:8px;font-size:13px;color:#c4b5fd}.race-list{padding-left:20px;font-size:13px;color:var(--muted);line-height:1.9;margin-bottom:14px}@media (max-width: 640px){.screen{padding:8px 10px 96px}.topbar{position:sticky;top:0;z-index:20;background:var(--bg);padding:6px 0}.cell{width:34px;min-width:34px;height:52px}.token{width:16px;height:16px}.card{width:132px}.decision{position:fixed;left:8px;right:8px;bottom:8px;z-index:30}.decision-options{flex-direction:column}.decision-options button{width:100%;padding:12px;font-size:15px}.scores{gap:8px}.score{font-size:12px}}
