:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--accent:#3b6fd8;--error:#c62828;--muted:color-mix(in srgb, currentColor 65%, transparent);--player:#2e8b57;--monster:#c0392b;--acting:#f1c40f;font-family:system-ui,sans-serif;line-height:1.5}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}body{margin:0}main{max-width:32rem;margin:0 auto;padding:1rem}h1{margin:0 0 1rem;font-size:1.6rem}.notice{border-left:4px solid var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent);padding:.5rem .75rem}.result{border:2px solid var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent);text-align:center;border-radius:8px;margin-bottom:1rem;padding:.75rem 1rem}.result h2{margin:0 0 .25rem}.rewards{padding:0;list-style:none}form{gap:1rem;display:grid}label{gap:.25rem;font-weight:600;display:grid}input,select,button{font:inherit;font-size:max(1rem,16px)}input,select{border:1px solid var(--muted);border-radius:6px;padding:.6rem;font-weight:400}button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;min-height:44px;padding:.5rem 1rem}button.secondary{color:inherit;border:1px solid var(--muted);background:0 0}button:disabled{opacity:.6}.hint,.small{color:var(--muted);font-size:.875rem;font-weight:400}.error{color:var(--error);margin:0}.error:empty{display:none}table{border-collapse:collapse;font-size:.9rem}th,td{text-align:left;vertical-align:top;border-bottom:1px solid var(--muted);padding:.4rem}.bar{border-bottom:1px solid var(--muted);flex-wrap:wrap;justify-content:space-between;gap:.25rem 1rem;padding-bottom:.5rem;display:flex}ul.games,ul.players{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}ul.games li{border:1px solid var(--muted);border-radius:6px;justify-content:space-between;align-items:center;gap:.75rem;padding:.5rem .75rem;display:flex}ul.players li{padding:.25rem 0}.offline{color:var(--muted)}.buttons:not([hidden]){flex-wrap:wrap;gap:.75rem;margin-top:1rem;display:flex}footer{margin-top:2rem}ul.characters{gap:.75rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}ul.characters li{border:1px solid var(--muted);border-radius:6px;padding:.5rem .75rem}ul.characters h3,ul.characters p{margin:.25rem 0}ul.characters .name-row{justify-content:space-between;align-items:center;gap:.75rem;display:flex}ul.characters .name-form{flex-wrap:wrap;gap:.5rem;margin:.25rem 0;display:flex}ul.characters .name-form input{flex:6rem;min-width:0}ul.characters .name-form .hint,ul.characters .name-form .error{flex-basis:100%}ul.characters dl{grid-template-columns:max-content max-content;gap:0 1rem;margin:.5rem 0;display:grid}ul.characters dd{font-variant-numeric:tabular-nums;margin:0}ol.track{flex-wrap:wrap;gap:.35rem;margin:.75rem 0 0;padding:0;font-size:.875rem;list-style:none;display:flex}ol.track li{background:color-mix(in srgb, var(--player) 20%, transparent);border:2px solid #0000;border-radius:999px;padding:.15rem .5rem}ol.track li.mine{background:color-mix(in srgb, var(--accent) 25%, transparent)}ol.track li.monster{background:color-mix(in srgb, var(--monster) 20%, transparent)}ol.track li.unplaced{border-style:dashed;border-color:var(--muted)}ol.track li.next{font-weight:700}ol.track li.acting{border-color:var(--acting)}.countdown{font-variant-numeric:tabular-nums}svg.map{width:100%;height:auto;max-height:70svh;margin:.5rem 0;display:block}.hex{fill:color-mix(in srgb, currentColor 6%, transparent);stroke:var(--muted);stroke-width:1px}.hex.start{fill:color-mix(in srgb, var(--accent) 22%, transparent)}.hex.target{fill:color-mix(in srgb, var(--acting) 30%, transparent);stroke:var(--acting);stroke-width:2px;cursor:pointer}.hex.target.attack{fill:color-mix(in srgb, var(--monster) 30%, transparent);stroke:var(--monster)}.token,.plans,.preview{pointer-events:none}.plan-marker circle{fill:none;stroke:var(--player);stroke-width:2.5px;stroke-dasharray:5 4}.plan-marker.mine circle{stroke:var(--accent)}.plan-marker.attack circle{stroke:var(--monster)}.plan-marker text{fill:currentColor;text-anchor:middle;dominant-baseline:central;font-size:11px;font-weight:700}.plan-line{stroke:var(--player);stroke-width:2px;stroke-dasharray:3 4;opacity:.7}.plan-line.mine{stroke:var(--accent)}.plan-marker.cancelled circle,.plan-line.cancelled{stroke:var(--error)}.plan-marker .cross{fill:var(--error)}.preview-line{stroke:var(--monster);stroke-width:2.5px;stroke-dasharray:2 4;stroke-linecap:round}.preview-line.attack{stroke-dasharray:none;opacity:.8}.preview-ghost{fill:none;stroke:var(--monster);stroke-width:2px;stroke-dasharray:2 4}.preview-damage{fill:var(--monster);text-anchor:middle;dominant-baseline:central;font-size:13px;font-weight:700}.planning:not([hidden]){flex-wrap:wrap;align-items:center;gap:.5rem 1rem;display:flex}.planning p{flex:14rem;margin:0}ol.track li.selected{outline:2px solid var(--accent);outline-offset:1px}ol.track li.mine[data-character]{cursor:pointer}.token{transition:transform .45s ease-in-out,opacity .45s}.token .body{fill:var(--player);stroke:#fff;stroke-width:1.5px}.token.mine .body{fill:var(--accent)}.token.monster .body{fill:var(--monster)}.token.acting .body{stroke:var(--acting);stroke-width:4px}.token text{text-anchor:middle;dominant-baseline:central;pointer-events:none}.token .label{fill:#fff;font-size:13px;font-weight:700}.token .hp{fill:currentColor;font-size:10px}.token .damage{fill:var(--monster);font-size:14px;font-weight:700;animation:.8s ease-out forwards float-up}.token.hit .body{animation:.4s ease-in-out 2 flash}.token.appearing{animation:.45s ease-out appear}.token.dying{opacity:0}@keyframes flash{50%{fill:#fff}}@keyframes float-up{to{opacity:0;transform:translateY(-12px)}}@keyframes appear{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.token,.token *{transition:none;animation:none!important}}ul.log{margin:.5rem 0;padding:0;list-style:none}ul.log li:first-child{color:canvastext}details.rules{margin:.75rem 0}details.rules summary{cursor:pointer;font-weight:600}details.rules h4{margin:.75rem 0 .25rem}details.rules p,details.rules ol{margin:.25rem 0}
