:root{--bg:#f4ead8;--card:#fffaf0;--ink:#2b1d12;--muted:#7a6450;--accent:#b5462a;--accent-ink:#fff;--border:#d9c6a5;--good:#2f7d4a;--bad:#b5462a;--blood:#8e0e0e;--gold:#d29a12;--gold-dark:#8a5d00;--brass:#c9a24a;--steel:#2f5f86;--scrim:#0000008c;--scene-sky-high:#f7dcaa;--scene-sky-low:#f2c98a;--scene-sun:#e8a33a;--scene-mesa:#d9a46e;--scene-horizon:#c98a4a;--scene-ground-line:#8a5a2a;--scene-ground:#b5793e;--pixel-outline:#2b1d12;color:var(--ink);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#1b1410;--card:#2a201a;--ink:#f1e6d6;--muted:#b49c84;--accent:#e0703f;--border:#4a3a2e;--good:#6fcf8d;--bad:#f0866a;--blood:#b3161b;--gold:#f2c14e;--gold-dark:#b07a10;--steel:#8ab8dc}}*{box-sizing:border-box}body{background:var(--bg);grid-template-columns:minmax(0,1fr);place-items:center;min-height:100svh;margin:0;padding:16px;display:grid}#root{width:100%}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;width:100%;max-width:560px;margin:0 auto;padding:24px;box-shadow:0 6px 24px #00000014}.game>.notice,.game>.error{margin:0}h1{letter-spacing:.04em;margin:0;font-size:2.5rem}h2{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 8px;font-size:1rem}button{font:inherit;border:1px solid var(--border);color:var(--ink);cursor:pointer;background:0 0;border-radius:8px;padding:10px 16px}button:disabled{opacity:.4;cursor:not-allowed}button.primary{background:var(--accent);width:100%;color:var(--accent-ink);border-color:var(--accent);font-weight:600}button.link{color:var(--muted);border:none;padding:0;text-decoration:underline}button.icon-button{color:var(--muted);border:none;margin:-11px;padding:11px;display:inline-flex}button.icon-button:hover{color:var(--ink)}input{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--ink);letter-spacing:.2em;text-transform:uppercase;border-radius:8px;flex:1;min-width:0;padding:10px 12px}.lobby{text-align:center;flex-direction:column;gap:16px;display:flex}.tagline{color:var(--muted);margin:0}.lobby>.link{align-self:center}.divider{color:var(--muted);font-size:.9rem}.join-form{gap:8px;display:flex}.join-form input{width:0}.join-form button{flex:none}.error{color:var(--bad)}.notice{color:var(--muted)}.code{letter-spacing:.15em;font-family:ui-monospace,Consolas,monospace}.game{flex-direction:column;gap:16px;display:flex}.game-header{white-space:nowrap;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;font-size:.9rem;display:grid}.game-header .turn{justify-self:center}.header-icons{justify-self:end;align-items:center;gap:24px;display:flex}.score{text-align:center;color:var(--muted);margin:0 0 12px}.score strong{color:var(--ink);font-size:1.1rem}.players{grid-template-columns:1fr 1fr;gap:12px;display:grid}.player{border:1px solid var(--border);text-align:center;background:var(--card);border-radius:10px;padding:12px}.player.down{border-color:var(--bad);color:var(--bad)}.ammo{min-height:24px;color:var(--muted);flex-wrap:wrap;justify-content:center;gap:4px;display:flex}.bullet{background:linear-gradient(var(--accent) 40%, var(--brass) 40%);border-radius:5px 5px 2px 2px;width:10px;height:22px}.shield{color:var(--muted);flex-direction:column;align-items:center;gap:4px;margin-top:8px;font-size:.8rem;display:flex}.shield-pips{justify-content:center;gap:2px;display:flex}.pip{fill:#0000;width:11px;height:13px;stroke:var(--muted);stroke-width:1.2px}.pip.on{fill:var(--steel);stroke:var(--steel)}.shield.broken .pip{stroke:var(--bad);stroke-dasharray:2 2}.shield.broken .shield-text{color:var(--bad)}.player-status{margin:8px 0 0;font-size:.9rem}.actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.action{text-align:left;flex-direction:column;align-items:flex-start;gap:2px;display:flex}.action:not(:disabled):hover{border-color:var(--accent)}.action-name{font-weight:600}.action-hint{color:var(--muted);font-size:.8rem}.standoff{flex-direction:column;gap:6px;display:flex}.standoff-stage{border:1px solid var(--border);background:var(--scene-sky-low);border-radius:10px;height:132px;position:relative;overflow:hidden}.standoff-backdrop{display:block;position:absolute;inset:0}.standoff-left,.standoff-right{position:absolute;bottom:12px}.standoff-left{left:8px}.standoff-right{right:8px}.standoff-right .sprite{transform:scaleX(-1)}.sprite{shape-rendering:crispedges;display:block}.standoff-moves{text-align:center;color:var(--muted);margin:0}.standoff-headline{text-align:center;margin:0;font-size:1.25rem;font-weight:700}.standoff.win .standoff-headline{color:var(--good)}.standoff.lose .standoff-headline{color:var(--bad)}.rules-dialog{background:var(--card);width:calc(100% - 32px);max-width:560px;max-height:calc(100vh - 32px);color:var(--ink);border:1px solid var(--border);text-align:left;white-space:normal;border-radius:12px;padding:0;font-size:1rem;overflow:auto}.rules-dialog::backdrop{background:var(--scrim)}.rules-content{padding:20px 24px 24px}.rules-content p{margin:0 0 12px;line-height:1.45}.rules-content h3{margin:16px 0 6px;font-size:1rem}.rules-header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.rules-header h2{margin:0}.rules-close{font-size:1.5rem;line-height:1;text-decoration:none}.rules-table{border-collapse:collapse;width:100%;font-size:.9rem}.rules-table th,.rules-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:6px 8px}.rules-table th{color:var(--muted);font-weight:600}.cost{align-items:center;gap:4px;display:inline-flex}.rules-table td:first-child,.rules-table td:nth-child(2){white-space:nowrap}.player.bleeding{border-top-color:var(--blood);position:relative;overflow:hidden}.blood{opacity:.75;pointer-events:none;position:absolute;top:0;left:0;right:0}.blood svg{fill:var(--blood);display:block}.blood-band{width:100%;height:16px;animation:linear both blood-ooze}.drip{animation:cubic-bezier(.25,.8,.4,1) both blood-ooze;position:absolute;top:9px}@keyframes blood-ooze{0%{clip-path:inset(0 0 100%)}to{clip-path:inset(0)}}@media (prefers-reduced-motion:reduce){.blood-band,.drip{animation:none}}.player.crowned{border-color:var(--gold);position:relative}.crown{width:36px;height:27px;fill:var(--gold);stroke:var(--gold-dark);stroke-width:1px;stroke-linejoin:round;pointer-events:none;animation:.6s cubic-bezier(.34,1.56,.64,1) both crown-drop;position:absolute;top:-16px;left:-12px;transform:rotate(-20deg)}.crown-jewel{fill:var(--bad);stroke:none}@keyframes crown-drop{0%{opacity:0;transform:translateY(-14px)rotate(-45deg)scale(.4)}}@media (prefers-reduced-motion:reduce){.crown{animation:none}}
