@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700;800;900&family=Inter:wght@400;500;600;700;800&display=swap');
:root{color-scheme:dark;--bg:#07111f;--mint:#58e0c2;--white:#f4f7fb;--muted:#8c9caf}
*{box-sizing:border-box}html,body,#app{margin:0;width:100%;height:100%;overflow:hidden;background:var(--bg);font-family:Inter,system-ui,sans-serif;color:var(--white)}
#game{position:absolute;inset:0;width:100%;height:100%;display:block}
.topbar{position:absolute;z-index:3;left:0;right:0;top:0;padding:20px 26px;display:flex;justify-content:space-between;align-items:center;background:linear-gradient(180deg,rgba(3,9,17,.82),transparent)}
.brand{display:flex;align-items:center;gap:10px;font:900 23px 'Barlow Condensed',sans-serif;letter-spacing:1px;line-height:.9}.brand-mark{display:grid;place-items:center;width:37px;height:37px;border-radius:11px;background:var(--mint);color:#07111f;font-size:27px;font-style:italic}.brand small{display:block;font:600 9px Inter,sans-serif;letter-spacing:3px;color:#9aabba;margin-top:5px}.accent{color:var(--mint)}
.stats{display:flex;gap:24px;text-align:right}.stats small{display:block;color:#9aabba;font-size:9px;letter-spacing:2px;font-weight:700}.stats b{font:800 22px 'Barlow Condensed',sans-serif;letter-spacing:1px}
.overlay{position:absolute;z-index:5;inset:0;display:grid;place-items:center;padding:20px;background:linear-gradient(90deg,rgba(3,9,17,.72),rgba(3,9,17,.15));}
.panel{width:min(490px,100%);padding:clamp(24px,4vw,42px);background:rgba(7,17,31,.88);border:1px solid rgba(170,205,222,.18);border-radius:22px;box-shadow:0 25px 100px #0007;backdrop-filter:blur(16px)}
.eyebrow{font-size:10px;letter-spacing:3px;color:var(--mint);font-weight:800}.panel h1,.panel h2{font:900 clamp(45px,7vw,72px)/.86 'Barlow Condensed',sans-serif;letter-spacing:-1px;margin:17px 0}.panel h1 span{color:var(--mint)}.panel h2{font-size:56px}.intro{font-size:13px;line-height:1.7;color:#aebdcb;margin:20px 0 24px}.panel label{display:block;font-size:9px;letter-spacing:2px;font-weight:800;color:#93a7b8;margin:15px 0 8px}
input{width:100%;min-width:0;border:1px solid #293a4d;border-radius:9px;background:#0c1b2b;color:white;padding:13px 14px;outline:none;font:600 13px Inter}input:focus{border-color:var(--mint)}.join-row{display:flex;gap:8px}.join-row button,.full-button{border:0;border-radius:9px;background:var(--mint);color:#06131e;font:900 12px Inter;letter-spacing:.4px;padding:0 18px;white-space:nowrap;cursor:pointer}.join-row input{max-width:135px;text-transform:uppercase}.howto{margin-top:20px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:#92a5b7;font-size:10px}.howto span{padding:4px 7px;border-radius:5px;border:1px solid #35485a;color:#fff;font-weight:800}.connection{display:flex;align-items:center;gap:8px;color:#8297aa;font-size:10px;margin-top:22px}.connection i{width:7px;height:7px;background:#e9b45c;border-radius:50%}.connection i.online{background:var(--mint);box-shadow:0 0 12px var(--mint)}.error{font-size:11px;color:#ff8795;margin-top:8px;min-height:14px}
.hidden{display:none!important}.hud{position:absolute;z-index:4;inset:84px 22px auto;pointer-events:none}.room-pill{display:inline-flex;align-items:center;gap:9px;background:#07111fcb;border:1px solid #ffffff20;border-radius:30px;padding:10px 14px;font-size:10px;letter-spacing:1px}.room-pill b{color:var(--mint)}.room-pill span{color:#a2b2c1;border-left:1px solid #425366;padding-left:9px}.leaderboard{position:absolute;right:0;top:0;width:190px;background:#07111fc9;border:1px solid #ffffff20;border-radius:13px;padding:13px}.lb-title{font-size:9px;letter-spacing:2px;color:#a5b5c5;font-weight:800;margin-bottom:10px}.lb-title span{float:right;color:var(--mint)}.runner{display:flex;gap:8px;align-items:center;padding:7px 0;border-top:1px solid #ffffff0d;font-size:10px}.runner .dot{width:7px;height:7px;border-radius:50%}.runner b{margin-left:auto;font-size:10px}.small-button{pointer-events:auto;position:absolute;top:0;left:0;margin-top:48px;background:#07111fc9;border:1px solid #ffffff22;border-radius:8px;color:#c4d0dc;padding:8px 11px;font-size:9px;letter-spacing:1px;cursor:pointer}
.compact{text-align:center;max-width:380px}.final-score{font:900 64px 'Barlow Condensed',sans-serif;color:var(--mint);margin:14px 0 22px}.full-button,.ghost-button{width:100%;padding:15px;margin-top:8px;border-radius:9px;cursor:pointer}.ghost-button{background:transparent;color:#c2d0dd;border:1px solid #34485b;font-size:11px;font-weight:800}
.mobile-controls{display:none;position:absolute;z-index:4;left:0;right:0;bottom:max(18px,env(safe-area-inset-bottom));padding:0 22px;justify-content:space-between;align-items:end;pointer-events:none}.mobile-controls button{pointer-events:auto;width:58px;height:58px;border-radius:18px;background:#07111f99;border:1px solid #ffffff4a;color:white;font-size:26px;backdrop-filter:blur(8px);touch-action:manipulation}.mobile-controls div{display:flex;gap:9px}.mobile-controls div button{width:52px;height:52px;font-size:20px}.toast{position:absolute;z-index:8;bottom:100px;left:50%;transform:translateX(-50%);padding:10px 14px;background:#07111fee;border:1px solid #ffffff22;border-radius:8px;font-size:11px;opacity:0;transition:opacity .2s;pointer-events:none}.toast.show{opacity:1}
@media(max-width:650px){.topbar{padding:14px 15px}.brand{font-size:19px}.brand-mark{width:32px;height:32px}.stats{gap:13px}.stats b{font-size:18px}.overlay{background:linear-gradient(0deg,rgba(3,9,17,.6),rgba(3,9,17,.22))}.panel{padding:25px 22px;border-radius:18px}.panel h1{font-size:54px}.hud{inset:70px 12px auto}.leaderboard{width:145px;padding:10px}.room-pill{font-size:9px;padding:9px 10px}.mobile-controls{display:flex}.small-button{margin-top:48px}.intro{font-size:12px}}

/* Gesture-based controls: hide on-screen navigation buttons */
.mobile-controls {
  display: none !important;
}

canvas {
  touch-action: none;
}
CSScat >> public/style.css <<'CSS'

/* Gesture-based controls: hide on-screen navigation buttons */
.mobile-controls {
  display: none !important;
}

canvas {
  touch-action: none;
}
