:root{font-family:system-ui,sans-serif;color:#f4f4fa;background:#10121c;color-scheme:dark}body{margin:0;padding:40px 24px}main{max-width:640px;margin:6vh auto}.brand{font-size:12px;letter-spacing:.18em;color:#a5a8f6}h1{font-size:clamp(38px,7vw,62px);line-height:1.06;letter-spacing:-.04em}p{line-height:1.6;color:#b8bbce}section{padding:28px;background:#1b1e2d;border:1px solid #35394e;border-radius:22px;margin-top:32px}button{font:inherit;font-weight:650;background:#b9ff80;color:#14240b;border:0;border-radius:12px;padding:13px 20px;cursor:pointer;margin:4px}button:disabled{opacity:.4;cursor:default}input{box-sizing:border-box;width:100%;padding:12px;margin-top:10px;background:#10121c;color:#d9dbeb;border:1px solid #4c526c;border-radius:8px}label,.note{font-size:13px;color:#a1a5bd}#total,#sp-total{font-size:90px;font-weight:750;color:#b9ff80}#leave,#resume{background:#35394e;color:#fff}#seats{list-style:none;margin:0 0 16px;padding:0}#seats li{padding:8px 0;border-bottom:1px solid #2a2d3d}#bots-row{display:flex;align-items:center;gap:8px;margin:12px 0}#bots-row button{padding:6px 14px;margin:0}[hidden]{display:none!important}
/* Blood Valley (public/blood-valley.html) -- kept here rather than a second stylesheet so no
   extra route needs registering in src/usher.js/wrangler.jsonc/runtime.capnp; an inline <style>
   tag would violate the strict style-src 'self' CSP those routes serve under. */
#game{position:relative;padding:0;margin-top:0}
/* A live match fills the viewport like single player. A standalone invite page (not embedded) keeps
   the 640px lab shell for the lobby, so once playing we lift #game out to cover the whole viewport --
   the cabinet canvas is sized to innerWidth/innerHeight, so this makes it fit exactly rather than
   overflowing the narrow panel. Embedded pages already stretch to the frame via .embedded.playing.
   No z-index: #game stays below the cabinet's own #arena-hud (fixed, z-index 3) while still painting
   over the static lab shell. */
html.playing:not(.embedded) #game:not([hidden]){position:fixed;inset:0;margin:0}
/* In BOTH layouts the cabinet canvas is appended as the last child of #game, so #leave must be
   floated out of flow or it pushes the viewport-sized canvas down and off the bottom edge (this bit
   the embedded arcade path too). The canvas stays static, so the absolute HUD overlays keep painting
   above it, and it now sits flush at the viewport origin. */
html.playing #game:not([hidden])>#leave{position:absolute;bottom:12px;left:12px;margin:0}
#scene{display:block;width:100%;height:70vh;background:#000;border-radius:22px;cursor:crosshair}
#hud-hitmarker{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:28px;font-weight:900;color:#ff5c5c;pointer-events:none;text-shadow:0 0 6px #000}
#hud-killfeed{position:absolute;top:16px;right:16px;list-style:none;margin:0;padding:0;text-align:right;pointer-events:none;font-size:13px}
#hud-killfeed li{background:#00000080;padding:4px 10px;border-radius:8px;margin-bottom:4px}
/* Blood Valley theme for the lobby shell (public/lobby.css variables): the cabinet's ScreenTheme
   palette -- umber ground, sand ink, blue / red sides, amber for ready + Start. The lab page
   (Race to Ten) keeps the shell's defaults. The html.bv class is set by blood-valley.html. */
html.bv{--lobby-ink:#EFE3D3;--lobby-muted:#C4B3A0;--lobby-panel:#2c211a;--lobby-ground:#241A14;--lobby-rule:#EFE3D31f;--lobby-accent:#FFB53D;--lobby-accent-ink:#241A14;--lobby-ash:#7C7F86;--lobby-bot:#C4B3A0;--lobby-side-0:#2C7DF0;--lobby-side-0-ink:#9CC6FF;--lobby-side-1:#E0362C;--lobby-side-1-ink:#FF9A8F;--lobby-font:"Saira BV","Bahnschrift","Arial Narrow",system-ui,sans-serif}
.embedded #scene{height:100vh;border-radius:0}
/* FPS counter -- same style and top-right position (top:82px) as the single-player cabinet
   (examples/blood-gulch/index.html). z-index 4 keeps it above the cabinet's #arena-hud (z 3).
   Only shown during a live match, not over the lobby. */
#fps-counter{position:fixed;top:82px;right:16px;z-index:4;min-width:66px;padding:4px 7px;border:1px solid #60cfff66;border-radius:3px;background:#06182db8;color:#aeeeff;font:600 12px ui-monospace,SFMono-Regular,Consolas,monospace;text-align:right;font-variant-numeric:tabular-nums;pointer-events:none;text-shadow:0 1px 2px #000}
html:not(.playing) #fps-counter{display:none}
/* The cabinet HUD is attached to body, outside the game container. */
html.bv:not(.playing) :is(#game,#arena-hud,#arena-scope,#arena-crosshair){display:none!important}
