:root{--red:#d3202a;--yellow:#ffd23f;--ink:#111;--paper:#fff7e6}
*{box-sizing:border-box}
html,body{margin:0;height:100%;overflow:hidden;background:#111;font-family:"Arial Black","Impact","Helvetica Neue",Arial,sans-serif;color:#fff;user-select:none}
canvas#c{position:fixed;inset:0;width:100%;height:100%;display:block}
.hidden{display:none!important}

#hud{position:fixed;inset:0;pointer-events:none}
#top-left{position:absolute;left:24px;top:18px;text-shadow:3px 3px 0 #000}
#score{font-size:48px;line-height:1;color:var(--yellow)}
#kills{font-size:18px;margin-top:4px;color:#fff;opacity:.9}
#top-center{position:absolute;top:14px;left:50%;transform:translateX(-50%);text-align:center;text-shadow:3px 3px 0 #000}
#timer{font-size:44px;line-height:1}
#timer.low{color:var(--red);animation:pulse .5s infinite alternate}
#timer-bonus{font-size:20px;color:#7CFC00;height:24px}
@keyframes pulse{from{transform:scale(1)}to{transform:scale(1.12)}}
#top-right{position:absolute;right:24px;top:18px;width:220px;text-align:right}
#top-right .label{font-size:12px;letter-spacing:2px;text-shadow:2px 2px 0 #000;margin-top:4px}
.bar{height:16px;background:#000a;border:3px solid #000;border-radius:3px;overflow:hidden}
.bar .fill{height:100%;background:linear-gradient(#7CFC00,#2e8b1e);width:100%;transition:width .2s}
.bar.heat .fill{background:linear-gradient(#ff5b5b,#a00);width:0}
#vehicle-name{margin-top:8px;font-size:14px;letter-spacing:1px;text-shadow:2px 2px 0 #000;color:var(--yellow)}

#combo{position:absolute;right:24px;bottom:90px;text-align:right;text-shadow:3px 3px 0 #000}
#combo-num{font-size:72px;line-height:1;color:var(--red);transform-origin:right center}
#combo-num.pop{animation:pop .18s ease-out}
@keyframes pop{0%{transform:scale(1.5) rotate(-6deg)}100%{transform:scale(1)}}
.combo-bar{width:200px;height:10px;background:#000a;border:3px solid #000;margin-left:auto}
#combo-fill{height:100%;background:var(--yellow);width:100%}

#nitro-wrap{position:absolute;left:24px;bottom:24px;width:220px;height:22px;background:#000a;border:3px solid #000;border-radius:3px;overflow:hidden}
#nitro-fill{height:100%;width:100%;background:linear-gradient(90deg,#39c,#9ef)}
#nitro-wrap span{position:absolute;inset:0;font-size:12px;letter-spacing:3px;text-align:center;line-height:16px;text-shadow:1px 1px 0 #000}

#banner{position:absolute;left:50%;top:32%;transform:translate(-50%,-50%) rotate(-4deg);font-size:84px;color:var(--yellow);-webkit-text-stroke:3px #000;text-shadow:6px 6px 0 var(--red);opacity:0;white-space:nowrap}
#banner.show{animation:banner 1.1s ease-out forwards}
@keyframes banner{0%{opacity:0;transform:translate(-50%,-50%) rotate(-4deg) scale(.4)}15%{opacity:1;transform:translate(-50%,-50%) rotate(-4deg) scale(1.15)}30%{transform:translate(-50%,-50%) rotate(-4deg) scale(1)}80%{opacity:1}100%{opacity:0}}

#popups{position:absolute;inset:0}
.popup{position:absolute;transform:translate(-50%,-100%);font-size:26px;color:#fff;-webkit-text-stroke:1.5px #000;text-shadow:3px 3px 0 #000;white-space:nowrap;animation:pop .15s ease-out}
.popup b{color:var(--yellow)}
.popup small{display:block;font-size:16px;color:#ffb3b3}

#flash{position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 40%,rgba(180,0,0,.75) 100%);opacity:0;transition:opacity .35s}
#nukeflash{position:absolute;inset:0;background:#fff;opacity:0;pointer-events:none}
#ammo{position:absolute;left:24px;bottom:56px;display:flex;gap:14px;font-size:16px;text-shadow:2px 2px 0 #000}
#ammo span{background:#000a;border:3px solid #000;padding:4px 10px}
#ammo span.ready{color:var(--yellow)}
#ammo span.cool{color:#888}
#gorebonus{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(0) rotate(-8deg);display:flex;align-items:center;gap:18px;background:#fff7e6;border:6px solid #000;box-shadow:14px 14px 0 var(--red);padding:14px 26px 14px 14px;opacity:0;pointer-events:none}
#gorebonus img{width:150px;height:188px;object-fit:cover;border:4px solid #000;transform:rotate(3deg)}
#gorebonus .gb-title{font-size:56px;color:var(--red);-webkit-text-stroke:2px #000;text-shadow:5px 5px 0 var(--yellow);line-height:1}
#gorebonus .gb-pts{font-size:36px;color:#111;margin-top:6px}
#gorebonus .gb-sub{font-family:Georgia,serif;font-style:italic;font-size:15px;color:#333;margin-top:6px}
#gorebonus.show{animation:gb 3.2s ease-out forwards}
@keyframes gb{0%{opacity:0;transform:translate(-50%,-50%) scale(0) rotate(-30deg)}12%{opacity:1;transform:translate(-50%,-50%) scale(1.1) rotate(-6deg)}20%{transform:translate(-50%,-50%) scale(1) rotate(-6deg)}80%{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(-6deg)}100%{opacity:0;transform:translate(-50%,-70%) scale(1.15) rotate(-6deg)}}
body.touch #gorebonus img{width:90px;height:112px}
body.touch #gorebonus .gb-title{font-size:32px}
body.touch #gorebonus .gb-pts{font-size:22px}
#splatter{position:absolute;inset:0;overflow:hidden}
.splat{position:absolute;transform:translate(-50%,-50%);transition:opacity 2.5s ease-in;opacity:.9}
#touch{position:absolute;inset:0;pointer-events:none;touch-action:none;-webkit-user-select:none}
#steer-zone{position:absolute;left:16px;bottom:16px;width:min(46vw,300px);height:64px;border:3px solid #000;border-radius:40px;background:#0009;pointer-events:auto;touch-action:none}
#steer-knob{position:absolute;top:4px;left:calc(50% - 26px);width:52px;height:52px;border-radius:50%;background:var(--yellow);border:3px solid #000}
#touch-right{position:absolute;right:12px;bottom:12px;display:flex;flex-direction:column;gap:8px;align-items:flex-end;pointer-events:auto}
#touch-right .row{display:flex;gap:8px}
.tbtn{pointer-events:auto;touch-action:none;font-family:inherit;font-size:16px;padding:0;width:74px;height:74px;border-radius:14px;border:3px solid #000;background:#0009;color:#fff;box-shadow:none;transform:none;-webkit-user-select:none;user-select:none}
.tbtn.small{width:auto;height:40px;padding:0 12px;font-size:12px;border-radius:10px}
.tbtn.gas{background:#2e8b1ecc;width:96px;height:96px}
.tbtn.brake{background:#a00c;height:96px}
.tbtn.held{filter:brightness(1.6);transform:scale(.95)}
.tbtn:hover{transform:none}
#touch-garage{position:absolute;left:16px;bottom:92px}
body.touch #hint,body.touch #nitro-wrap{display:none!important}
body.touch #ammo{left:16px;bottom:140px;font-size:12px}
body.touch #combo{bottom:200px}
body.touch #top-left #score{font-size:32px}
body.touch #top-center #timer{font-size:32px}
body.touch #top-right{width:150px}
body.touch #banner{font-size:44px}
#hint{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);font-size:12px;letter-spacing:1px;opacity:.55;text-shadow:1px 1px 0 #000;font-family:Arial,sans-serif}

.screen{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:rgba(15,5,5,.82);text-align:center;padding:24px}
.screen h1{font-size:min(14vw,130px);line-height:.9;margin:0;color:var(--paper);-webkit-text-stroke:4px #000;text-shadow:10px 10px 0 var(--red);transform:rotate(-3deg)}
.screen h1 span{color:var(--yellow)}
.screen h2{font-size:64px;margin:0 0 10px;color:var(--yellow);-webkit-text-stroke:2px #000;text-shadow:6px 6px 0 var(--red)}
.tag{font-family:Georgia,serif;font-style:italic;font-size:20px;color:#ffd;margin:24px 0}
.btns{display:flex;gap:16px;margin:14px 0;flex-wrap:wrap;justify-content:center}
button{font-family:inherit;font-size:20px;padding:14px 28px;border:4px solid #000;background:var(--yellow);color:#000;cursor:pointer;box-shadow:6px 6px 0 #000;transform:rotate(-1deg)}
button.toggle{background:#333;color:#fff;font-size:15px;padding:10px 18px}
button.toggle.dense{background:#7a1010;color:#ffd23f}
button.big{font-size:30px;background:var(--red);color:#fff;transform:rotate(1deg)}
button:hover{transform:scale(1.05)}
button:disabled{opacity:.4;cursor:not-allowed}
.controls{font-family:Arial,sans-serif;font-size:14px;color:#ddd;max-width:640px}
.controls b{color:var(--yellow)}
.best{font-size:16px;color:#ffd}
.cash-row{font-size:28px;color:#7CFC00;margin-bottom:12px;text-shadow:2px 2px 0 #000}
#shop-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;max-width:1000px;width:100%;max-height:55vh;overflow:auto;padding:4px}
.item{background:#221;border:3px solid #000;box-shadow:5px 5px 0 #000;padding:12px;text-align:left;display:flex;flex-direction:column;gap:6px}
.item h3{margin:0;font-size:20px;color:var(--yellow)}
.item p{margin:0;font-family:Arial,sans-serif;font-size:13px;color:#ddd}
.item .row{display:flex;justify-content:space-between;align-items:center;margin-top:auto}
.item button{font-size:14px;padding:8px 14px;transform:none;box-shadow:3px 3px 0 #000}
.item .lvl{font-size:12px;color:#aaa;font-family:Arial,sans-serif}
.item.owned{border-color:#7CFC00}
.item button.select{background:#7CFC00}
#over-stats{font-size:22px;line-height:1.7;text-shadow:2px 2px 0 #000;margin-bottom:8px}
#over-stats b{color:var(--yellow)}
