RISE ROAR REVENGE
<title>Arcade Football — Local 2‑Player Match</title> <style> :root{--bg:#071126;--field:#0d6b2f;--accent:#ffd64b;--teamA:#1e90ff;--teamB:#ff6b6b} *{box-sizing:border-box} html,body{height:100%;margin:0;background:linear-gradient(180deg,#071126 0%,#0b1530 100%);color:#eef3fb;font-family:Inter,system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif} .wrap{height:100vh;display:flex;flex-direction:column} .stage{flex:1;position:relative;overflow:hidden} canvas{display:block;width:100%;height:100%;background:linear-gradient(180deg,#0b421f,#0d6b2f);} .topbar{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:linear-gradient(180deg,rgba(0,0,0,.28),rgba(0,0,0,.18));gap:12px} .btn{background:#101827;color:var(--ui);border-radius:8px;padding:8px 12px;border:1px solid rgba(255,255,255,.06);cursor:pointer} .panel{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:rgba(8,12,20,.95);padding:18px;border-radius:12px;border:1px solid rgba(255,255,255,.06);z-index:40;width:min(720px,94vw)} .hidden{display:none} .controls{font-size:13px;color:#cbd5e1} .mobile-controls{position:absolute;left:12px;bottom:12px;display:flex;gap:8px;z-index:50} .circle-btn{width:64px;height:64px;border-radius:50%;background:rgba(0,0,0,0.45);display:grid;place-items:center;border:1px solid rgba(255,255,255,.06);font-weight:700} .joystick{position:absolute;left:12px;bottom:92px;width:120px;height:120px;border-radius:50%;background:rgba(0,0,0,0.12);display:grid;place-items:center} .small{padding:6px 8px;font-size:13px} .score{font-weight:800;font-size:18px} .muted{color:#9fb7c9} .badge{background:rgba(0,0,0,.35);padding:6px 8px;border-radius:8px} @media (max-width:700px){ .panel{width:94vw;padding:14px} .circle-btn{width:56px;height:56px} .joystick{width:100px;height:100px} } </style>Match: 1:003:005:00
AI: NormalHard
0 - 0
01:00
Start
Pause
Restart
<div class="stage">
<canvas id="game"></canvas>
<div id="menu" class="panel">
<h2 style="margin:0 0 8px">Arcade Football — Local 2‑Player</h2>
<p class="muted" style="margin:0 0 12px">Play locally with a friend or against smarter AI. This build includes: two-player local (WASD / arrows), mobile on-screen controls, improved AI, scoring animation, sound effects, and options for match length & difficulty.</p>
<div style="display:flex;gap:8px;flex-wrap:wrap">
<button id="menuPlay" class="btn">Play</button>
<button id="menu2p" class="btn">Enable 2-Player Local</button>
<button id="menuHow" class="btn">How to Play</button>
</div>
<p style="margin-top:10px;font-size:13px;color:#9fb7c9">Controls — Player 1: WASD to move, J = Pass, K = Shoot (hold). Player 2: ←↑→↓ to move, N = Pass, M = Shoot (hold). On mobile use the joystick + buttons.</p>
</div>
<div id="goalAnim" class="panel hidden" style="width:fit-content;transform:translate(-50%,-60%);left:50%;top:30%;">
<h1 id="goalText" style="margin:0">GOAL!</h1>
</div>
<!-- Mobile controls (touch) -->
<div id="mobileLeft" class="joystick hidden" aria-hidden="true"></div>
<div id="mobileBtns" class="mobile-controls hidden">
<div id="passBtn" class="circle-btn">Pass</div>
<div id="shootBtn" class="circle-btn">Shoot</div>
<div id="switchBtn" class="circle-btn">Switch</div>
</div>
</div>