:root{--ink:#2b2118;--paper:#f4ead2;--paper2:#ecdcb4;--accent:#8a3b1d;color:var(--ink);background:#d9c9a0;font-family:Patrick Hand,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0}button,select,input{font:inherit;color:inherit}button{background:var(--paper);border:2px solid var(--ink);cursor:pointer;border-radius:8px;padding:4px 10px;box-shadow:2px 2px #2b211859}button:hover:not(:disabled){background:#fff8e4}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);color:#fff8e4}button.end{margin-left:auto}button small{opacity:.6}input,select{background:#fffaf0;border:1.5px solid #8a7a5a;border-radius:6px;padding:3px 6px}.muted{opacity:.65}.small{font-size:.85em}.grow{flex:1}.dot{border:1.5px solid var(--ink);vertical-align:middle;border-radius:50%;width:12px;height:12px;margin-right:6px;display:inline-block}.pill{border:1.5px solid var(--ink);border-radius:99px;padding:0 8px;font-size:.85em}.pill.warn{background:#f2c14e}code{font-family:ui-monospace,monospace;font-size:.8em}.menu{background:var(--paper);border:3px solid var(--ink);border-radius:14px;flex-direction:column;gap:14px;max-width:640px;margin:40px auto;padding:24px;display:flex;box-shadow:5px 5px #2b21184d}.menu h1,.menu h2{margin:0;font-family:Caveat,cursive;font-size:2.6em}.menu .row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.lobby table{border-collapse:collapse}.lobby td{padding:4px 6px}.game{grid-template-rows:auto 1fr auto;height:100vh;display:grid}.game.with-dev{margin-right:420px}.bar{background:var(--paper);border-bottom:2px solid var(--ink);align-items:center;gap:12px;padding:6px 12px;display:flex}.bar .turn{border-left:6px solid;padding-left:8px}.table{grid-template-columns:1fr 320px;min-height:0;display:grid}.board-wrap{min-height:0;display:flex;position:relative}.board{width:100%;height:100%}.node{cursor:pointer}.node .hit{fill:#0000}.node .ring{fill:none;stroke:#ffef7a;stroke-width:10px;animation:1s infinite alternate pulse}.node .ring.sel{stroke:#ff5a3a;animation:none}.node .count{fill:#fff;pointer-events:none;font:700 20px system-ui}.node .dice{fill:var(--ink);paint-order:stroke;stroke:#fffaf0;stroke-width:6px;font:700 30px system-ui}@keyframes pulse{0%{opacity:.45}to{opacity:1}}.winner{background:var(--paper);border:4px solid var(--ink);border-radius:16px;padding:16px 32px;font:700 3em Caveat,cursive;position:absolute;top:40%;left:50%;transform:translate(-50%,-50%)}.side{background:var(--paper2);border-left:2px solid var(--ink);flex-direction:column;gap:8px;padding:8px;display:flex;overflow:auto}.faction{background:var(--paper);border:2px solid;border-left-width:8px;border-radius:8px;padding:4px 8px}.faction.current{box-shadow:0 0 0 3px #ffef7a}.faction summary{cursor:pointer;list-style:none}.faction .vp{float:right;font-weight:700}.vpbar{background:#d8c9a2;border-radius:3px;height:6px;margin-top:3px}.vpbar i{border-radius:3px;height:100%;display:block}.fbody{font-size:.9em}.fbody ul{margin:4px 0;padding-left:18px}.items span{border:1.5px solid var(--ink);background:#fffaf0;border-radius:6px;margin:2px;padding:0 5px;display:inline-block}.items span.burnt{opacity:.4;text-decoration:line-through}.nodeinfo{border:2px dashed var(--ink);background:#fffaf0;border-radius:8px;padding:6px;font-size:.9em}.log{flex:1;min-height:120px;font-size:.85em;overflow:auto}.log div{border-left:4px solid;margin:2px 0;padding-left:6px}.controls{background:var(--paper);border-top:2px solid var(--ink);padding:6px 10px}.actions{flex-wrap:wrap;align-items:center;gap:8px;min-height:38px;display:flex}.hint{opacity:.75}.hand{gap:6px;min-height:60px;padding-top:6px;display:flex;overflow-x:auto}.card{border-radius:10px;flex:none;width:92px;padding:0;transition:transform .12s}.card img{border-radius:8px;width:100%;display:block}.card.playable{transform:translateY(-6px);box-shadow:0 0 0 4px #ffef7a}.card.chosen{transform:translateY(-10px);box-shadow:0 0 0 4px #ff5a3a}.dev{color:#f4ead2;z-index:10;background:#1f1a14;flex-direction:column;width:420px;font:13px ui-monospace,monospace;display:flex;position:fixed;top:0;bottom:0;right:0}.dev button{color:#f4ead2;box-shadow:none;background:#3a3128;border-color:#8a7a5a;padding:2px 8px}.dev select,.dev input{color:#f4ead2;background:#2c251d}.devhead,.devrow{border-bottom:1px solid #3a3128;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 8px;display:flex}.devtabs{display:flex}.devtabs button{border-radius:0;flex:1}.devtabs button.on{background:#8a3b1d}.devbody{flex:1;padding:6px 8px;overflow:auto}.moves{margin:0;padding:0;list-style:none}.moves li{border-bottom:1px solid #2c251d;padding:2px 0}.json{white-space:pre-wrap;word-break:break-all;font-size:11px}.file input{display:none}.file{cursor:pointer;border:1px solid #8a7a5a;border-radius:6px;padding:2px 8px}.toast{background:var(--ink);color:var(--paper);z-index:20;border-radius:10px;max-width:80vw;padding:8px 16px;position:fixed;bottom:150px;left:50%;transform:translate(-50%)}@media (width<=900px){.table{grid-template-rows:55vh auto;grid-template-columns:1fr}.game.with-dev{margin-right:0}.dev{width:100%;top:40%}}
