:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:#ffffffeb;background-color:#0b0f17;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh;overflow:hidden}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}html,body,#root,.app{height:100%;width:100%}.menu{height:100%;width:100%;display:grid;place-items:center;padding:24px}.panel{width:min(720px,92vw);border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:20px;background:#ffffff0a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.title{margin:0 0 10px;font-size:28px;line-height:1.1}.muted{margin:0 0 16px;color:#ffffffb3}.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.input{flex:1;min-width:240px;padding:10px 12px;border-radius:10px;border:1px solid rgba(255,255,255,.15);background:#00000059;color:inherit}.btn{border-radius:10px;border:1px solid rgba(255,255,255,.14);padding:10px 12px;background:#ffffff0f;cursor:pointer}.btnPrimary{background:#646cff59;border-color:#646cff8c}.kv{margin-top:14px;display:grid;gap:10px}.kvRow{display:grid;grid-template-columns:160px 1fr auto;gap:10px;align-items:center}.label{color:#ffffffb3;font-size:13px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:12px;word-break:break-all;padding:10px 12px;border-radius:10px;border:1px solid rgba(255,255,255,.12);background:#00000059}.injuryVignette{position:fixed;inset:0;z-index:4;pointer-events:none;background:radial-gradient(ellipse 85% 85% at 50% 50%,transparent 15%,rgba(180,30,30,.25) 45%,rgba(160,20,20,.5) 75%,rgba(120,10,10,.7) 100%)}.overlay{position:fixed;top:12px;left:12px;z-index:5;pointer-events:auto;display:grid;gap:8px}.hud{pointer-events:none;border:1px solid rgba(255,255,255,.14);border-radius:12px;background:#00000073;padding:10px 12px;color:#ffffffe6;font-size:12px;line-height:1.35;width:max-content;max-width:min(360px,92vw)}.hudTitle{font-weight:650;margin-bottom:6px}.gameOver{pointer-events:auto;border:1px solid rgba(239,68,68,.35);border-radius:14px;background:#0009;padding:14px 16px;color:#fffffff2;max-width:min(520px,92vw)}.gameOverTitle{font-weight:800;letter-spacing:.08em;font-size:18px;margin-bottom:6px;color:#fecaca}.magazineIndicator{position:fixed;left:16px;bottom:16px;z-index:5;pointer-events:none;display:flex;align-items:center;gap:10px}.magazineIndicatorBar{width:200px;height:20px;border-radius:10px;background:linear-gradient(to right,#32282df2,#1e191cfa);border:1px solid rgba(255,255,255,.08);overflow:hidden;position:relative}.magazineIndicatorFill{height:100%;border-radius:10px;background:linear-gradient(180deg,#fca5a5,#f87171,#ef4444 70%,#dc2626);box-shadow:inset 0 1px #ffffff59,inset 0 -1px #7f1d1d80;transition:width .35s ease-out;min-width:0;position:relative}.magazineIndicatorFill:after{content:"";position:absolute;inset:0;border-radius:10px;background:repeating-linear-gradient(90deg,transparent 0,transparent 19px,rgba(0,0,0,.25) 19px,rgba(0,0,0,.25) 20px);background-size:200px 100%;pointer-events:none}.magazineIndicatorCount{font-weight:700;font-size:14px;color:#fffffff2;min-width:28px;text-align:right}.speedIndicator{position:fixed;right:16px;bottom:16px;z-index:5;pointer-events:none;display:flex;align-items:center;gap:10px}.speedIndicatorBar{width:200px;height:20px;border-radius:10px;background:linear-gradient(to right,#282d3cf2,#191c26fa);border:1px solid rgba(255,255,255,.08);overflow:hidden;position:relative}.speedIndicatorFill{height:100%;border-radius:10px;background:linear-gradient(180deg,#7ab8ff,#60a5fa,#3b82f6 70%,#2563eb);box-shadow:inset 0 1px #fff6,inset 0 -1px #1e3a8a66;transition:width .35s ease-out;min-width:0;position:relative}.speedIndicatorFill:after{content:"";position:absolute;inset:0;border-radius:10px;background:repeating-linear-gradient(90deg,transparent 0,transparent 19px,rgba(0,0,0,.25) 19px,rgba(0,0,0,.25) 20px);background-size:200px 100%;pointer-events:none}.speedIndicatorPercent{font-weight:700;font-size:14px;color:#fffffff2;min-width:36px;text-align:right}
