@charset "UTF-8";
:root { --paper:#f3e8cf; --paper-light:#fff4dc; --ink:#2b271f; --muted:#796e59; --red:#e34737; --line:#2b271f; --green:#527844; color-scheme:light; font-family:"Segoe UI",Arial,sans-serif; color:var(--ink); background:#77694f; }
* { box-sizing:border-box; }
body { margin:0; overflow:hidden; user-select:none; touch-action:none; }
button,input { font:inherit; }
button,a { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; }
button:disabled { opacity:.4; cursor:default; transform:none !important; }
button:focus-visible,a:focus-visible,input:focus-visible { outline:3px solid var(--red); outline-offset:5px; }
a { color:inherit; text-decoration:none; }
button { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:43px; padding:10px 22px; border:2px solid var(--ink); border-radius:0; background:var(--red); color:var(--paper-light); box-shadow:4px 4px 0 var(--ink); font-size:12px; font-weight:750; letter-spacing:.5px; text-transform:uppercase; transition:transform .15s,box-shadow .15s,background .15s; }
button:hover:not(:disabled) { transform:translate(-1px,-2px); box-shadow:5px 6px 0 var(--ink); }
button.secondary { color:var(--ink); background:var(--paper-light); }
button.subtle { box-shadow:none; background:transparent; border-color:#2b271f40; color:var(--muted); }
.ui-icon { width:22px; height:22px; flex-shrink:0; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.gun-icon { width:85px; height:40px; fill:currentColor; stroke:none; }
.hidden { display:none !important; }
canvas { display:block; cursor:crosshair; background:#b4a17e; }
button .ui-icon { width:18px; height:18px; }
button .duel-icon { width:26px; } button .teams-icon { width:30px; }
h1,h2,h3,p { margin:0; }
h1,h2 { font-family:Impact,"Arial Narrow",sans-serif; font-weight:400; font-style:italic; text-transform:uppercase; }
button .arrow-icon { margin-left:auto; }
.eyebrow { display:flex; align-items:center; gap:10px; font:9px ui-monospace,Consolas,monospace; letter-spacing:1.7px; color:var(--muted); text-transform:uppercase; }
.eyebrow i { width:18px; height:1px; background:currentColor; }
kbd { border:1px solid #2b271f50; padding:3px 5px; font:9px ui-monospace,Consolas,monospace; }
.menu-screen { touch-action:pan-y; position:fixed; inset:0; z-index:20; display:flex; flex-direction:column; align-items:center; justify-content:safe center; padding:38px; overflow:auto; pointer-events:auto; background:radial-gradient(#8775541c .7px,transparent .7px) 0 0/5px 5px,var(--paper); }
.menu-screen::before { content:""; position:fixed; inset:0; pointer-events:none; background:linear-gradient(115deg,#fff7e54d,transparent 55%,#ae815413); }
.menu-screen>* { position:relative; }
#start-screen { display:block; padding:0; overflow-y:auto; background:var(--paper); }
.menu-shell { position:relative; width:min(1680px,100%); height:100%; min-height:660px; margin:auto; overflow:hidden; isolation:isolate; }
.menu-shell::before { content:""; position:absolute; inset:0; z-index:-2; background:repeating-conic-gradient(from 4deg at 76% 52%,transparent 0 11deg,#85714312 11.1deg 11.25deg),radial-gradient(ellipse at 75% 50%,#d6bc8855,transparent 65%); }
.menu-shell::after { content:""; position:absolute; z-index:-1; inset:0; pointer-events:none; background:linear-gradient(90deg,#f3e8cf 25%,#f3e8cfdd 42%,#f3e8cf00 67%),radial-gradient(#8b724941 .7px,transparent .7px) 0 0/5px 5px; }
.menu-header { position:absolute; z-index:4; top:28px; left:40px; right:40px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.game-wordmark { display:flex; align-items:center; gap:11px; }
.game-wordmark .ui-icon { width:32px; height:32px; }
.game-wordmark>span { display:flex; flex-direction:column; font:10px Impact,"Arial Narrow",sans-serif; letter-spacing:2.5px; }
.game-wordmark strong { font:20px Impact,"Arial Narrow",sans-serif; letter-spacing:1px; }
.menu-header-right { display:flex; align-items:center; gap:25px; }
#online-counter { display:flex; align-items:center; gap:7px; font:10px ui-monospace,Consolas,monospace; color:var(--muted); white-space:nowrap; }
.dot { width:5px; height:5px; border-radius:50%; background:var(--green); }
#online-count { color:var(--ink); }
.menu-bank { display:flex; align-items:center; gap:8px; font-size:14px; font-weight:750; font-variant-numeric:tabular-nums; }
.menu-bank .ui-icon { color:var(--red); }
.icon-button { min-height:30px; width:30px; padding:4px; box-shadow:2px 2px 0 var(--ink); background:var(--paper-light); color:var(--ink); }
.menu-copy { position:absolute; top:50%; left:7%; width:44%; max-width:560px; transform:translateY(-43%); z-index:3; }
.game-title { font-size:clamp(76px,8.8vw,139px); line-height:.93; letter-spacing:-1.6px; transform:rotate(-3deg); transform-origin:left center; margin:23px 0 28px; text-shadow:none; }
.game-title>span { display:block; font-size:.88em; }
.game-title>strong { display:block; font-weight:400; color:var(--red); -webkit-text-stroke:1px var(--ink); text-shadow:4px 5px 0 var(--ink); }
.game-title em { color:var(--ink); font-style:inherit; }
.menu-copy>p { color:#786b53; font-size:13px; line-height:1.6; margin-bottom:27px; }
.mode-picker { display:flex; width:100%; max-width:425px; gap:6px; margin-bottom:13px; }
.mode-picker button { min-width:0; flex:1; min-height:42px; padding:6px 7px; font-size:9px; background:var(--paper-light); color:var(--ink); box-shadow:none; gap:6px; }
.mode-picker .ui-icon { width:15px; height:16px; }.mode-picker .duel-icon { width:23px; }.mode-picker .teams-icon { width:28px; }
.mode-picker button[aria-pressed=true] { color:var(--paper-light); background:var(--ink); box-shadow:2px 2px 0 #bba781; }
.primary-action { font:italic 24px Impact,"Arial Narrow",sans-serif; letter-spacing:.7px; min-height:59px; padding:12px 20px; }
.menu-copy>.primary-action { width:100%; max-width:425px; justify-content:flex-start; transform:rotate(-1deg); }
.menu-copy>.primary-action:hover { transform:rotate(-1deg) translate(-1px,-2px); }
.armory-action { display:flex; width:100%; max-width:425px; margin-top:14px; background:#fff4dc; color:var(--ink); min-height:49px; padding:8px 15px; box-shadow:3px 3px 0 #b8a27d; font-size:10px; }
.armory-action .gun-icon { width:42px; height:25px; }.armory-action small { margin-left:auto; font:8px ui-monospace,Consolas,monospace; color:var(--muted); }.armory-action>span:last-child { margin-left:5px; font-size:18px; color:var(--red); }
.join-shortcut { display:flex; margin-top:18px; gap:13px; align-items:center; max-width:425px; color:var(--muted); font-size:10px; }
.join-shortcut button { color:var(--ink); background:transparent; border:0; padding:0 0 2px; min-height:20px; border-bottom:1px solid #6c6048; box-shadow:none; font-size:10px; }
.menu-controls { display:flex; gap:7px; align-items:center; margin-top:22px; color:var(--muted); font:8px ui-monospace,Consolas,monospace; letter-spacing:.3px; }
.menu-controls .ui-icon { width:14px; height:14px; margin-left:9px; }.menu-controls kbd:nth-of-type(2) { margin-left:9px; }
.menu-hero { position:absolute; z-index:0; right:-2%; width:66%; height:auto; max-height:98%; top:50%; transform:translateY(-47%); pointer-events:none; }
.menu-footer { position:absolute; bottom:23px; left:40px; right:40px; display:flex; justify-content:space-between; align-items:center; gap:20px; font:8px ui-monospace,Consolas,monospace; color:var(--muted); letter-spacing:.5px; z-index:5; }
.menu-footer a { padding:6px 0; }.menu-footer a:hover { color:var(--red); }.menu-footer button,.legal-toggle { font-size:9px; color:var(--muted); background:transparent; border:0; box-shadow:none; padding:6px 0; min-height:20px; text-transform:none; letter-spacing:0; }
.menu-footer>span { margin-left:auto; }.menu-footer .dot { display:inline-block; margin-right:6px; background:var(--red); }
#legal-menu { position:absolute; bottom:62px; left:40px; width:min(540px,calc(100% - 80px)); max-height:50vh; overflow:auto; z-index:8; padding:22px; border:2px solid var(--ink); box-shadow:5px 5px 0 #2b271f55; background:var(--paper-light); }
#legal-menu p,#legal-mp p { font-size:11px; line-height:1.6; margin:0 0 12px; text-align:left; color:var(--muted); }
.panel-heading { display:flex; flex-direction:column; align-items:center; gap:14px; text-align:center; margin-bottom:25px; }
.panel-heading h2 { font-size:clamp(38px,4.5vw,62px); letter-spacing:.4px; transform:rotate(-2deg); }.panel-heading h2 span { color:var(--red); }.panel-heading p { font-size:12px; color:var(--muted); line-height:1.6; }
.btn-group { display:flex; align-items:center; justify-content:center; gap:16px; margin-top:22px; flex-wrap:wrap; }
.mode-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); width:min(800px,88vw); margin:0; align-items:stretch; gap:14px; }
.mode-card { display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-start; padding:24px; min-height:160px; text-align:left; background:var(--paper-light); color:var(--ink); box-shadow:4px 4px 0 #b6a07c; gap:15px; }
.mode-card:hover { background:var(--ink); color:var(--paper-light); }.mode-card .ui-icon { width:32px; height:30px; color:var(--red); }.mode-card .duel-icon { width:40px; }.mode-card .teams-icon { width:50px; }.mode-card strong { font:italic 24px Impact,sans-serif; letter-spacing:.4px; }.mode-card small { font-size:10px; font-weight:400; text-transform:none; letter-spacing:0; color:var(--muted); }.mode-card:hover small { color:#bead8f; }
.room-join { display:flex; align-items:center; gap:12px; margin:28px auto 20px; justify-content:center; }
input[type=text] { width:170px; min-width:0; border:2px solid var(--ink); padding:13px; font:16px ui-monospace,Consolas,monospace; background:#fff7e8; color:var(--ink); text-transform:uppercase; letter-spacing:2px; user-select:text; }
.room-join button { min-height:48px; }
.lobby-legal { max-width:720px; text-align:center; margin:auto; }#legal-mp { border-top:1px solid #2b271f40; padding:18px 0; margin-top:8px; }
#lobby-room { text-align:center; width:min(650px,100%); }#lobby-mode-badge { display:inline-flex; gap:9px; align-items:center; background:var(--ink); color:var(--paper-light); padding:9px 14px; font-size:10px; font-weight:700; margin-bottom:20px; transform:rotate(-2deg); }
.room-label { font:9px ui-monospace,Consolas,monospace; letter-spacing:1.7px; color:var(--muted); }.room-label small { font-size:8px; letter-spacing:0; margin-left:8px; }
.room-code { display:block; margin:12px auto 20px; min-width:230px; font:38px Impact,sans-serif; font-style:italic; letter-spacing:7px; padding:12px 23px; background:var(--paper-light); color:var(--red); border:2px dashed var(--ink); box-shadow:none; user-select:text; }
.lobby-status { font-size:10px; color:var(--muted); }#lobby-status { color:var(--ink); font-weight:700; }#player-list { color:var(--muted); font:10px ui-monospace,Consolas,monospace; margin:13px 0; }
.team-lobby { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:min(490px,100%); gap:16px; margin:22px auto; }.team-card { background:#f9efdc; border:2px solid #31678b; box-shadow:4px 4px 0 #31678b33; padding:17px; text-align:left; }.team-card.red { border-color:#a4372f; box-shadow:4px 4px 0 #a4372f33; }.team-card h3 { color:#31678b; font:23px Impact,sans-serif; }.team-card.red h3 { color:#a4372f; }.team-slot { font:10px ui-monospace,Consolas,monospace; padding:9px 0; color:var(--ink); }.team-slot.empty { color:var(--muted); }.team-card button { min-height:33px; padding:6px 10px; width:100%; margin-top:10px; background:#31678b; font-size:9px; box-shadow:2px 2px 0 var(--ink); }.team-card.red button { background:#a4372f; }.team-card button[aria-pressed=true] { background:var(--ink); }
#team-rules { font-size:11px; line-height:1.7; color:var(--muted); max-width:470px; margin:0 auto 19px; }#waiting-msg { margin:18px 0 0; font-size:11px; color:var(--muted); }#lobby-error { border:1px solid var(--red); padding:11px 16px; margin:20px 0 0; font-size:12px; color:#a23025; max-width:600px; }.panel-back { margin-top:28px; }
.shop-header { display:flex; align-items:center; justify-content:space-between; width:min(1100px,100%); gap:24px; margin-bottom:25px; }.shop-header .panel-heading { margin:0; text-align:left; align-items:flex-start; }.shop-wallet { border:2px solid var(--ink); padding:12px 18px; box-shadow:3px 3px 0 #baa37b; background:var(--paper-light); }.shop-wallet small { display:block; font:8px ui-monospace,Consolas,monospace; color:var(--muted); margin-bottom:7px; letter-spacing:1px; }.shop-wallet strong { font-size:20px; color:var(--red); }
.shop-container { touch-action:pan-y; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; width:min(1100px,100%); max-height:calc(100dvh - 260px); overflow-y:auto; padding:0 8px 9px 0; scrollbar-width:thin; scrollbar-color:#ab9673 transparent; }
.loadout-count { grid-column:1 / -1; font:10px ui-monospace,Consolas,monospace; letter-spacing:1px; color:var(--muted); padding:3px 0; }.loadout-count strong { color:var(--ink); }
.shop-item { min-width:0; position:relative; display:flex; flex-direction:column; gap:12px; border:2px solid #8d7e63; background:#fff3dc; padding:18px; box-shadow:3px 3px 0 #b5a17f; }.shop-item.owned { border-color:var(--ink); }.shop-item.equipped { border-color:var(--red); box-shadow:4px 4px 0 var(--ink); }.shop-item .weapon-art { height:65px; width:100%; color:#827357; }.shop-item.equipped .weapon-art { color:var(--red); }.shop-item h3 { font:italic 23px Impact,sans-serif; letter-spacing:.3px; }.weapon-status { display:flex; justify-content:space-between; color:var(--muted); font:8px ui-monospace,Consolas,monospace; letter-spacing:.8px; }.weapon-status strong { color:var(--red); font-size:8px; font-weight:500; }.shop-stats { display:flex; flex-wrap:wrap; gap:15px; color:var(--muted); font-size:9px; line-height:1.7; }.shop-stats b { display:block; font-size:14px; color:var(--ink); font-weight:650; }.shop-price { font:12px ui-monospace,Consolas,monospace; margin-top:auto; }.buy-btn { width:100%; min-height:36px; padding:7px; font-size:10px; box-shadow:2px 2px 0 var(--ink); }.buy-btn.equipped-action { background:var(--ink); color:var(--paper-light); }.buy-btn.equip-action { background:var(--paper-light); color:var(--ink); }
.result-screen { background:#1f1b16b5; backdrop-filter:blur(6px); }.result-card { width:min(490px,100%); padding:44px; background:var(--paper); border:3px solid var(--ink); box-shadow:9px 9px 0 #1e1a12; text-align:center; transform:rotate(-1deg); }.result-card .eyebrow { justify-content:center; margin-bottom:22px; }.result-card h2,.result-card h1 { font-size:57px; line-height:1; letter-spacing:-.3px; color:var(--red); margin:0 0 20px; }.result-card p { color:var(--muted); font-size:13px; line-height:1.7; margin:0 0 27px; }.result-card .btn-group { flex-direction:column; gap:15px; margin:0; }.result-card button { width:100%; }.result-card>button+button { margin-top:15px; }
#ui-layer { position:fixed; inset:0; pointer-events:none; }#game-ui { position:absolute; inset:0; color:var(--ink); }.hud-top { position:absolute; inset:23px 25px auto; display:grid; grid-template-columns:220px 1fr 160px; align-items:start; gap:16px; pointer-events:none; }.stat-box { background:#f7ecd6ee; border:2px solid var(--ink); padding:12px 14px; box-shadow:3px 3px 0 #2b271f99; }.vitals-heading { display:flex; align-items:center; gap:6px; font:8px ui-monospace,Consolas,monospace; letter-spacing:.7px; }.vitals-heading .ui-icon { color:var(--red); width:13px; height:13px; }.vitals-heading strong { margin-left:auto; font:20px Impact,sans-serif; letter-spacing:0; }.vitals-heading small { font:8px "Segoe UI",sans-serif; color:var(--muted); }.health-bar-container { height:9px; background:#bbad93; border:1px solid var(--ink); width:100%; margin:9px 0 10px; overflow:hidden; }#health-fill { height:100%; width:100%; background:var(--red); transition:width .2s; background-image:repeating-linear-gradient(90deg,transparent 0 26px,#2b271f66 26px 27px); }.vitals-note { color:var(--muted); font:6px ui-monospace,Consolas,monospace; letter-spacing:1px; }.vitals-note b { color:var(--ink); font-weight:400; }
.wallet-box { position:fixed; bottom:29px; left:27px; background:transparent; padding:0; border:0; box-shadow:none; }.money-display { display:flex; align-items:center; gap:10px; font-size:25px; font-weight:750; font-variant-numeric:tabular-nums; }.money-display>.ui-icon { color:#a33c2e; width:23px; height:23px; }.wallet-caption { font:7px ui-monospace,Consolas,monospace; letter-spacing:1.3px; margin-top:7px; color:#50452f; }
.wave-panel { justify-self:center; display:flex; align-items:center; gap:15px; background:#f7ecd6e8; border:2px solid var(--ink); box-shadow:3px 3px 0 #2b271f99; padding:10px 19px; transform:rotate(-2deg); }.wave-number { display:flex; flex-direction:column; gap:3px; text-align:center; }.wave-number>small { color:var(--muted); font:6px ui-monospace,Consolas,monospace; letter-spacing:1px; }#level-display { font:italic 44px Impact,sans-serif; line-height:1; color:var(--red); }.wave-enemies { border-left:1px solid #87745370; padding-left:14px; font:7px ui-monospace,Consolas,monospace; color:var(--muted); line-height:1.7; }.wave-enemies strong { font-size:17px; color:var(--ink); }.wave-enemies>span { display:block; }#level-variant { color:#a33429; font-size:7px; letter-spacing:1px; display:block; max-width:100px; }
.session-controls { justify-self:end; display:flex; align-items:flex-start; gap:9px; pointer-events:auto; }#ping-display { font:9px ui-monospace,Consolas,monospace; padding:8px 10px; box-shadow:2px 2px 0 #2b271f99; min-width:76px; }#ping-display small { display:block; font-size:6px; color:var(--muted); margin-top:5px; }#ping-value { color:var(--green); }#transport-type { color:var(--muted); }.pause-button { background:#f7ecd6ee; color:var(--ink); width:33px; min-height:33px; padding:6px; box-shadow:2px 2px 0 #2b271f99; }
#pvp-score-bar { position:fixed; top:23px; left:50%; transform:translateX(-50%) rotate(-2deg); background:#f7ecd6ee; border:2px solid var(--ink); box-shadow:4px 4px 0 #2b271f99; padding:12px 22px; display:flex; align-items:center; gap:23px; z-index:6; white-space:nowrap; }#pvp-p1-score,#pvp-p2-score { display:flex; flex-direction:column; gap:3px; font:8px ui-monospace,Consolas,monospace; letter-spacing:1px; text-align:center; }#pvp-my-score,#pvp-enemy-score { font:39px Impact,sans-serif; line-height:1; }#pvp-p1-score { color:#31678b; }#pvp-p2-score { color:#a4372f; }.score-target { font:6px ui-monospace,Consolas,monospace; color:var(--muted); text-align:center; letter-spacing:.8px; line-height:1.8; }.score-target strong { display:block; color:var(--ink); font-size:10px; }#game-ui:has(#pvp-score-bar:not(.hidden)) .wave-panel { visibility:hidden; }#team-status { position:fixed; top:117px; left:50%; transform:translateX(-50%); background:#f7ecd6ed; border:1px solid var(--ink); padding:6px 10px; font:8px ui-monospace,Consolas,monospace; color:var(--ink); z-index:6; white-space:nowrap; }
.weapon-hud { position:absolute; bottom:25px; right:25px; width:222px; background:#f7ecd6ee; border:2px solid var(--ink); padding:13px 16px 10px; box-shadow:4px 4px 0 #2b271f99; }.weapon-kicker { color:var(--muted); font:6px ui-monospace,Consolas,monospace; letter-spacing:1.5px; margin-bottom:8px; }.weapon-name { font-size:11px; font-weight:750; text-transform:uppercase; letter-spacing:.4px; }.ammo-row { display:flex; align-items:center; justify-content:space-between; gap:15px; margin:10px 0 7px; }.ammo-row .gun-icon { width:78px; height:38px; color:var(--ink); }.ammo-count { font:italic 46px Impact,sans-serif; color:var(--red); line-height:1; white-space:nowrap; }.ammo-count small { font:9px ui-monospace,Consolas,monospace; color:var(--muted); }.ammo-track { height:3px; background:#bba98c; margin-bottom:8px; }#ammo-fill { height:100%; background:var(--red); transition:width .12s; }.reload-bar { height:3px; background:#bba98c; display:none; margin-bottom:8px; }.reload-fill { height:100%; background:var(--green); width:0; }.reload-control { display:flex; justify-content:space-between; align-items:center; gap:6px; }.reload-control small { font:5px ui-monospace,Consolas,monospace; color:var(--muted); }.reload-control button { min-height:18px; padding:0; background:transparent; border:0; box-shadow:none; font-size:6px; color:var(--muted); }.reload-control kbd { padding:1px 3px; font-size:6px; }
#weapon-slots-container { position:absolute; bottom:25px; left:50%; transform:translateX(-50%); display:flex; gap:6px; pointer-events:auto; }.weapon-slot { position:relative; width:62px; height:51px; padding:13px 7px 5px; border:2px solid var(--ink); background:#f7ecd6ee; color:#8d7a58; box-shadow:3px 3px 0 #2b271f99; }.weapon-slot .gun-icon { width:43px; height:25px; }.weapon-slot .key { position:absolute; top:4px; left:6px; font:7px ui-monospace,Consolas,monospace; color:var(--muted); }.weapon-slot.active { color:var(--red); border-color:var(--red); background:#fff4dc; }.weapon-slot.active .key { color:var(--red); }.game-hint { position:absolute; bottom:91px; left:50%; transform:translateX(-50%); color:#63563e; background:#f3e8cfbf; border:1px solid #78684988; padding:6px 10px; font:7px ui-monospace,Consolas,monospace; white-space:nowrap; }.weapon-hud { pointer-events:auto; }
#variant-announcement,.notification,#level-countdown { position:absolute; left:50%; transform:translate(-50%,-50%) rotate(-3deg); top:28%; color:var(--red); font:italic 50px Impact,sans-serif; text-shadow:3px 3px 0 var(--ink); -webkit-text-stroke:.8px var(--ink); text-align:center; text-transform:uppercase; pointer-events:none; z-index:12; }.notification { top:20%; opacity:0; transition:opacity .5s; }#level-countdown { font-size:35px; background:#f3e8cfeb; padding:13px 24px; border:2px solid var(--ink); box-shadow:4px 4px 0 var(--ink); -webkit-text-stroke:0; text-shadow:none; top:23%; }
#dev-auth-modal { position:fixed; inset:0; z-index:2000; pointer-events:auto; display:flex; align-items:center; justify-content:center; background:#1f1b16a0; backdrop-filter:blur(4px); }#dev-auth-modal.hidden { display:none !important; }.dev-auth-box { width:min(380px,calc(100vw - 32px)); background:#f7ecd6; border:3px solid var(--ink); box-shadow:8px 8px 0 var(--ink); padding:24px; transform:rotate(-1deg); color:var(--ink); }#dev-menu { position:fixed; top:70px; right:20px; z-index:1000; pointer-events:auto; display:flex; flex-direction:column; gap:9px; background:#f7ecd6; border:3px solid var(--ink); box-shadow:6px 6px 0 var(--ink); padding:16px; width:330px; max-width:calc(100vw - 32px); max-height:calc(100dvh - 90px); overflow-y:auto; color:var(--ink); }#dev-menu.hidden { display:none !important; }.dev-header { display:flex; justify-content:space-between; align-items:center; border-bottom:2px solid var(--ink); padding-bottom:8px; margin-bottom:2px; }.dev-title { display:flex; align-items:center; gap:8px; }.dev-badge { background:var(--red); color:#fff; font-size:9px; font-weight:900; padding:2px 6px; border-radius:3px; letter-spacing:1px; }.dev-header h3 { margin:0; font-size:14px; font-weight:900; letter-spacing:.5px; }.dev-close-btn { background:transparent !important; border:none !important; font-size:16px !important; font-weight:900 !important; cursor:pointer; color:var(--ink) !important; padding:0 4px !important; min-height:unset !important; box-shadow:none !important; width:auto !important; }.dev-close-btn:hover { color:var(--red) !important; }.dev-section { display:flex; flex-direction:column; gap:6px; background:#efe2c9; border:1.5px solid #d4c4a5; border-radius:6px; padding:8px 10px; }.dev-section-title { font-size:8px; font-weight:900; letter-spacing:1px; color:#786649; text-transform:uppercase; }.dev-row { display:flex; gap:6px; flex-wrap:wrap; }.dev-row > * { flex:1; min-width:0; }.dev-btn { background:#fff; border:2px solid var(--ink); color:var(--ink) !important; font-size:10px; font-weight:800; padding:6px 8px; border-radius:4px; cursor:pointer; box-shadow:2px 2px 0 var(--ink); text-align:center; min-height:30px; display:inline-flex; align-items:center; justify-content:center; gap:5px; transition:transform .05s, box-shadow .05s; }.dev-btn:hover { background:#fffaf0; }.dev-btn:active { transform:translate(1px,1px); box-shadow:1px 1px 0 var(--ink); }.dev-btn.primary-dev-btn { background:#ffd359; color:#3b2003 !important; font-weight:900; font-size:11px; padding:8px 10px; }.dev-btn.primary-dev-btn:hover { background:#ffdc73; }.dev-btn.toggle-btn.active { background:#d4edda; border-color:#28a745; color:#155724 !important; font-weight:900; }.dev-weapons-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:4px; margin-top:2px; }.dev-weapon-chip { background:#fbf5e8; border:1.5px solid var(--ink); color:var(--ink) !important; padding:4px 3px; font-size:8px; font-weight:800; border-radius:4px; cursor:pointer; box-shadow:1.5px 1.5px 0 var(--ink); text-align:center; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-height:24px; display:flex; align-items:center; justify-content:center; }.dev-weapon-chip:hover { background:#fff; border-color:var(--red); color:var(--red) !important; }
#touch-controls { position:absolute; inset:0; pointer-events:none; z-index:3; touch-action:none; }.joystick-zone { position:absolute; top:0; width:50%; height:100%; pointer-events:auto; }#joystick-left { left:0; }#joystick-right { right:0; }.joystick-base { position:absolute; width:100px; height:100px; background:#f3e8cf40; border:2px solid #2b271f55; border-radius:50%; transform:translate(-50%,-50%); display:none; pointer-events:none; }.joystick-stick { position:absolute; top:50%; left:50%; width:40px; height:40px; border-radius:50%; background:#2b271f66; transform:translate(-50%,-50%); }
.controls-dialog { max-width:470px; width:calc(100% - 40px); border:3px solid var(--ink); background:var(--paper); color:var(--ink); padding:32px; box-shadow:8px 8px 0 #0006; transform:rotate(-1deg); }.controls-dialog::backdrop { background:#201a12a8; backdrop-filter:blur(6px); }.controls-dialog h2 { font-size:44px; margin:14px 0 20px; }.controls-dialog h2 span { color:var(--red); }.controls-dialog dl { display:grid; grid-template-columns:80px 1fr; gap:18px 14px; margin:0 0 27px; font-size:12px; color:var(--muted); }.controls-dialog dt { color:var(--ink); }.controls-dialog dd { margin:0; }.controls-dialog button { width:100%; }
@media(min-width:1500px) { .menu-copy { left:9%; }.menu-hero { right:0; width:65%; }}
@media(max-width:1100px) { .menu-header { left:28px; right:28px; }.menu-copy { left:7%; width:47%; }.game-title { font-size:99px; }.menu-hero { right:-10%; width:74%; }.menu-footer { left:28px; right:28px; }.menu-copy>p { font-size:12px; }.mode-picker,.menu-copy>.primary-action,.armory-action,.join-shortcut { max-width:370px; }.primary-action { min-height:54px; }.hud-top { grid-template-columns:195px 1fr 135px; }.weapon-hud { width:200px; } }
@media(max-width:780px) { .menu-screen { padding:25px 20px; }.menu-shell { min-height:690px; }.menu-header { top:22px; left:24px; right:24px; }.menu-header-right { gap:14px; }.menu-bank { font-size:12px; }#online-counter { font-size:8px; }.game-wordmark>span { font-size:8px; }.game-wordmark strong { font-size:17px; }.game-wordmark>.ui-icon { width:27px; }.menu-copy { width:56%; left:6%; transform:translateY(-42%); }.game-title { font-size:79px; }.menu-copy>p { font-size:11px; margin-bottom:22px; max-width:270px; }.eyebrow { font-size:7px; gap:6px; letter-spacing:1px; }.eyebrow i { width:10px; }.mode-picker { gap:4px; }.mode-picker button { padding:6px 3px; font-size:8px; gap:4px; min-height:37px; }.mode-picker .ui-icon { width:12px; }.mode-picker .duel-icon { width:20px; }.mode-picker .teams-icon { width:23px; }.menu-copy>.primary-action { min-height:51px; font-size:21px; }.armory-action { min-height:46px; padding:7px 11px; gap:8px; font-size:9px; }.armory-action small { font-size:6px; }.join-shortcut { flex-wrap:wrap; font-size:9px; gap:8px; margin-top:16px; }.join-shortcut button { font-size:9px; }.menu-controls { flex-wrap:wrap; font-size:6px; gap:5px; max-width:300px; margin-top:18px; }.menu-controls kbd { font-size:7px; }.menu-hero { width:86%; right:-21%; opacity:.9; top:49%; }.menu-footer { left:24px; right:24px; bottom:19px; font-size:7px; gap:12px; }.menu-footer>span { display:none; }.menu-footer button { font-size:8px; }#legal-menu { left:24px; width:calc(100% - 48px); }
 .mode-options { gap:10px; width:100%; }.mode-card { padding:17px 13px; min-height:155px; gap:14px; }.mode-card strong { font-size:20px; }.mode-card small { font-size:9px; line-height:1.5; }.panel-heading h2 { font-size:43px; }.shop-container { grid-template-columns:repeat(2,minmax(0,1fr)); max-height:calc(100dvh - 230px); }.shop-header { margin-bottom:20px; }.shop-header .panel-heading h2 { font-size:40px; }.shop-wallet { padding:10px 13px; }.shop-wallet strong { font-size:17px; }.shop-item h3 { font-size:21px; }.shop-item { padding:14px; gap:10px; }.shop-item .weapon-art { height:53px; }.shop-stats { gap:12px; font-size:8px; }.shop-stats b { font-size:12px; }
 .hud-top { top:18px; left:17px; right:17px; grid-template-columns:170px 1fr auto; gap:9px; }.stat-box { padding:10px 11px; }.vitals-heading { font-size:6px; }.vitals-heading strong { font-size:17px; }.vitals-heading small { font-size:6px; }.vitals-note { font-size:5px; letter-spacing:.6px; }.health-bar-container { margin:7px 0 8px; height:8px; }.wave-panel { padding:9px 11px; gap:10px; }#level-display { font-size:34px; }.wave-enemies { padding-left:10px; font-size:6px; }.wave-enemies strong { font-size:13px; }.wave-number>small { font-size:5px; }#ping-display { min-width:60px; font-size:8px; padding:7px; }#ping-display small { font-size:5px; }.session-controls { gap:7px; }.pause-button { width:28px; min-height:28px; padding:4px; }.weapon-hud { width:166px; right:18px; bottom:81px; padding:11px 12px 8px; }.weapon-name { font-size:9px; }.ammo-count { font-size:39px; }.ammo-row .gun-icon { width:52px; }.ammo-row { gap:8px; }.ammo-count small { font-size:7px; }.wallet-box { bottom:100px; left:18px; padding:0; }.money-display { font-size:21px; gap:7px; }.wallet-caption { font-size:6px; }#weapon-slots-container { bottom:22px; gap:5px; }.weapon-slot { width:51px; height:44px; }.weapon-slot .gun-icon { width:34px; height:20px; }.game-hint { bottom:75px; font-size:6px; padding:5px 7px; }#pvp-score-bar { top:18px; gap:17px; padding:10px 17px; }#pvp-my-score,#pvp-enemy-score { font-size:32px; }#pvp-p1-score,#pvp-p2-score { font-size:6px; }#team-status { top:99px; font-size:6px; } }
@media(max-width:570px) { .menu-shell { min-height:730px; }.menu-header { left:20px; right:20px; }.menu-header-right { gap:10px; }#online-counter { gap:4px; font-size:7px; }.menu-bank { font-size:11px; gap:5px; }.menu-bank .ui-icon { width:17px; }.menu-header-right>.icon-button { min-height:26px; width:26px; }.menu-copy { width:77%; top:47%; left:7%; max-width:390px; }.game-title { font-size:clamp(65px,17vw,82px); margin:20px 0 24px; }.menu-shell::after { background:linear-gradient(90deg,#f3e8cf 14%,#f3e8cfde 51%,#f3e8cf55 100%); }.menu-hero { width:95%; right:-23%; opacity:.32; top:59%; }.menu-controls { font-size:6px; }.menu-footer { left:20px; right:20px; align-items:flex-end; }.menu-footer button { font-size:7px; max-width:150px; text-align:right; }.armory-action small { font-size:7px; }.mode-options { grid-template-columns:1fr; }.mode-card { display:grid; grid-template-columns:40px 1fr; min-height:90px; gap:4px 17px; padding:15px 18px; }.mode-card .ui-icon { grid-row:1 / 3; width:33px; align-self:center; }.mode-card .teams-icon { width:39px; }.mode-card strong { font-size:23px; }.mode-card small { grid-column:2; }.panel-heading { margin-bottom:23px; }.panel-heading h2 { font-size:39px; }.room-join { gap:10px; margin:24px 0 16px; }.room-join input { width:140px; font-size:14px; padding:12px 10px; }.room-join button { min-height:44px; font-size:10px; padding:10px 14px; }.panel-back { margin-top:23px; }.team-lobby { gap:11px; }.team-card { padding:13px; }.team-card h3 { font-size:20px; }.team-slot { font-size:9px; }.shop-header .panel-heading .eyebrow { display:none; }.shop-header .panel-heading h2 { font-size:31px; }.shop-wallet small { font-size:6px; }.shop-wallet strong { font-size:14px; }.shop-container { gap:12px; }.shop-item { padding:11px; }.shop-item h3 { font-size:19px; }.shop-stats { gap:7px; font-size:7px; }.shop-stats b { font-size:11px; }.weapon-status { font-size:6px; }.weapon-status strong { font-size:6px; }.shop-price { font-size:10px; }.shop-item .weapon-art { height:45px; }.loadout-count { font-size:8px; }.result-card { padding:33px 26px; }.result-card h1,.result-card h2 { font-size:47px; }
 .hud-top { grid-template-columns:160px 1fr; }.session-controls { grid-column:2; }.wave-panel { position:fixed; top:118px; left:50%; transform:translateX(-50%) rotate(-2deg); }.wave-panel .wave-number { flex-direction:row; align-items:center; gap:7px; }#level-display { font-size:30px; }.wave-enemies { display:flex; align-items:center; gap:7px; }.wave-enemies>span { display:inline; }.wave-panel { padding:7px 12px; }#pvp-score-bar { top:116px; padding:8px 15px; gap:17px; }#pvp-p1-score,#pvp-p2-score { flex-direction:row; align-items:center; gap:7px; }#pvp-my-score,#pvp-enemy-score { font-size:28px; }.score-target { font-size:5px; }#team-status { top:180px; }#variant-announcement { top:37%; font-size:37px; }.notification { top:36%; font-size:40px; }#level-countdown { top:35%; font-size:27px; } }
@media(max-height:680px) and (min-width:781px) { .menu-shell { min-height:600px; }.menu-header { top:20px; }.menu-copy { top:50%; transform:translateY(-44%); }.game-title { font-size:85px; margin:16px 0 22px; }.menu-copy>p { margin-bottom:17px; font-size:11px; }.primary-action { min-height:48px; font-size:22px; }.mode-picker button { min-height:35px; }.armory-action { min-height:42px; margin-top:12px; }.menu-controls { margin-top:16px; }.join-shortcut { margin-top:13px; }.menu-footer { bottom:17px; }.panel-heading h2 { font-size:40px; }.panel-heading { margin-bottom:20px; }.mode-card { min-height:130px; padding:17px; }.shop-header .panel-heading h2 { font-size:40px; }.shop-container { max-height:calc(100dvh - 205px); }.shop-header { margin-bottom:18px; } }
@media(max-height:500px) and (orientation:landscape) { .menu-screen { padding:20px; justify-content:flex-start; }.menu-shell { min-height:520px; }.menu-copy { top:51%; }.game-title { font-size:67px; margin:14px 0 18px; }.menu-copy>p { font-size:10px; margin-bottom:14px; }.menu-controls { display:none; }.mode-picker { margin-bottom:9px; }.mode-picker button { min-height:32px; }.menu-copy>.primary-action { min-height:40px; font-size:18px; }.armory-action { min-height:37px; }.game-wordmark>span { font-size:7px; }.game-wordmark strong { font-size:14px; }.menu-header { top:16px; }.hud-top { top:12px; }.stat-box { padding:7px 9px; }.health-bar-container { margin:6px 0; }.vitals-note { display:none; }.wave-panel { padding:6px 11px; }#level-display { font-size:27px; }#pvp-score-bar { top:12px; padding:6px 16px; }#pvp-my-score,#pvp-enemy-score { font-size:27px; }#team-status { top:79px; }.weapon-hud { bottom:15px; width:165px; padding:9px 12px; }.ammo-count { font-size:31px; }.ammo-row { margin:6px 0; }.weapon-kicker { display:none; }#weapon-slots-container { bottom:15px; }.wallet-box { bottom:20px; }.game-hint { display:none; }.panel-heading { margin-bottom:17px; }.panel-heading h2 { font-size:32px; }.mode-card { min-height:105px; padding:13px; gap:9px; }.mode-card strong { font-size:20px; }.mode-card .ui-icon { height:23px; }.room-join { margin:20px 0; }.result-card { padding:25px 34px; }.result-card h2,.result-card h1 { font-size:40px; margin-bottom:15px; }.result-card p { margin-bottom:20px; }.result-card .eyebrow { margin-bottom:14px; }.result-card .btn-group { gap:12px; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { transition:none !important; animation:none !important; } }
#gameCanvas { cursor:none; }
#game-ui::before { content:""; position:absolute; inset:0; background:radial-gradient(#352b202b .65px,transparent .65px) 0 0/5px 5px; opacity:.18; pointer-events:none; }
