:root{--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--game-menu-button-height:40px}html,body{background:var(--color-surface-background);height:100%;margin:0;overflow:hidden}#app{justify-content:center;align-items:center;width:100vw;height:100dvh;display:flex;position:relative}.game-viewport{inset:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);position:absolute}.touch-controls{--touch-size:min(clamp(136px, 36dvh, 180px), calc((100vw - var(--safe-left) - var(--safe-right) - 120px) / 2));z-index:4;pointer-events:none;position:absolute;inset:0}.touch-controls[hidden],.touch-pad[hidden]{display:none!important}.touch-pad{width:var(--touch-size);height:var(--touch-size);border:3px solid rgb(var(--color-surface-border-light-rgb) / .95);background:rgb(var(--color-surface-inset-rgb) / .65);box-shadow:0 0 0 2px rgb(var(--color-surface-backdrop-rgb) / .8), 0 4px 16px rgb(var(--color-shadow-deep-rgb) / .4);color:var(--color-primary-hover);pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border-radius:50%;padding:0;position:absolute;bottom:16px}.touch-pad-move{left:16px}.touch-pad-move.has-jump-sector:before{content:"";background:conic-gradient(from calc(var(--jump-sector) * -.5), rgb(var(--color-surface-border-light-rgb) / .25) 0deg var(--jump-sector), transparent var(--jump-sector) 360deg);pointer-events:none;border-radius:50%;position:absolute;inset:0}.touch-pad-aim{right:16px}.touch-pad-jump{left:calc(32px + var(--touch-size));width:64px;height:64px}.touch-pad-label{width:100%;font:13px var(--font-interface);text-align:center;pointer-events:none;position:absolute;bottom:8px;left:0}.touch-pad-jump .touch-pad-label{font-size:12px;bottom:23px}.touch-stick-thumb{width:calc(var(--touch-size) * .34);height:calc(var(--touch-size) * .34);margin:calc(var(--touch-size) * -.17);box-sizing:border-box;border:3px solid var(--color-text);background:rgb(var(--color-menu-avatar-rgb) / .85);box-shadow:0 2px 8px rgb(var(--color-shadow-deep-rgb) / .5);transform:translate(var(--stick-x,0px), var(--stick-y,0px));pointer-events:none;border-radius:50%;position:absolute;top:50%;left:50%}.touch-pad.is-held{background:rgb(var(--color-surface-inset-rgb) / .85)}.touch-pad-aim.is-held .touch-stick-thumb{background:rgb(var(--color-secondary-rgb) / .95)}@media (orientation:portrait){.touch-controls{display:none}}.orientation-hint{display:none}@media (any-pointer:coarse) and (orientation:portrait){#app[data-match-active=true] .orientation-hint{z-index:8;box-sizing:border-box;padding:max(72px, var(--safe-top)) max(24px, var(--safe-right)) max(24px, var(--safe-bottom)) max(24px, var(--safe-left));color:var(--color-primary);background:rgb(var(--color-surface-inset-rgb) / .96);text-align:center;font-family:var(--font-interface);flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex;position:absolute;inset:0}.orientation-hint h2{font:26px var(--font-display);margin:0}.orientation-hint p{max-width:320px;color:var(--color-text-secondary);margin:0;font-size:16px;line-height:1.5}}.hidden{display:none!important}.menu-overlay{box-sizing:border-box;padding:max(clamp(12px, 3vh, 32px), var(--safe-top)) max(16px, var(--safe-right)) max(clamp(12px, 3vh, 32px), var(--safe-bottom)) max(16px, var(--safe-left));background:linear-gradient(rgb(var(--color-surface-backdrop-rgb) / .08), rgb(var(--color-surface-backdrop-rgb) / .24)), url(/img/main2.png) center / cover no-repeat;z-index:10;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.menu-panel{box-sizing:border-box;background:radial-gradient(ellipse at top left, rgb(var(--color-info-surface-rgb) / .38), transparent 60%), radial-gradient(ellipse at bottom right, rgb(var(--color-danger-glow-rgb) / .3), transparent 60%), rgb(var(--color-surface-inset-rgb) / .97);border:1px solid var(--color-surface-border);border-top:3px solid var(--color-surface-border-light);width:380px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);box-shadow:0 16px 48px rgb(var(--color-shadow-deep-rgb) / .55), inset 0 1px 0 rgb(var(--color-primary-rgb) / .12);scrollbar-color:var(--color-surface-scrollbar-thumb) var(--color-surface-background);border-radius:16px;flex-direction:column;align-items:center;gap:12px;padding:20px 24px;display:flex;overflow-y:auto}.menu-title{color:var(--color-primary);font-family:var(--font-display);letter-spacing:1px;text-shadow:0 2px 12px rgb(var(--color-secondary-rgb) / .22);margin:0;font-size:clamp(24px,3vw,30px)}.menu-buttons{grid-template-columns:minmax(0,1fr);gap:12px;width:100%;display:grid}.menu-actions{grid-template-columns:minmax(0,1fr);gap:8px;display:grid}.menu-settings{flex-direction:column;gap:8px;display:flex}.menu-buttons.hidden{display:none}.menu-button{min-height:44px;font-size:16px;font-family:var(--font-interface);color:var(--color-text-inverse);background:var(--color-secondary);cursor:pointer;border:none;border-radius:6px;padding:10px 16px;font-weight:600;transition:filter .12s,box-shadow .12s}.menu-button:hover{filter:brightness(1.12);box-shadow:0 4px 16px rgb(var(--color-shadow-deep-rgb) / .24)}.menu-button-primary{background:linear-gradient(135deg, var(--color-secondary-bright), var(--color-secondary-deep));border-bottom:3px solid var(--color-secondary-edge)}.menu-button-training{color:var(--color-text);background:linear-gradient(135deg, var(--color-info-surface), var(--color-info-surface-deep));border:1px solid var(--color-info-border)}.menu-button-bot{color:var(--color-menu-action-text);background:linear-gradient(135deg, var(--color-menu-action), var(--color-menu-action-deep));border:1px solid var(--color-menu-action-border)}.menu-panel button:focus-visible{outline:3px solid var(--color-primary-hover);outline-offset:3px}.rooms-section{border-top:1px solid var(--color-surface-wood-divider);min-width:0;color:var(--color-text);font-family:var(--font-interface);padding-top:12px}.rooms-section h2{color:var(--color-primary);margin:0 0 10px;font-size:16px;font-weight:600}.room-list{max-height:100px;overflow-y:auto}.room-row{border-bottom:1px solid var(--color-surface-border-strong);align-items:center;gap:12px;padding:6px 0;font-size:13px;display:flex}.room-name{overflow-wrap:anywhere;flex:1;min-width:0}.room-count{white-space:nowrap;color:var(--color-success-text);font-variant-numeric:tabular-nums}.room-join{padding:8px 10px;font-size:13px}.room-join:disabled{background:var(--color-surface-hover);color:var(--color-text-muted);cursor:default;filter:none;box-shadow:none}.rooms-status{color:var(--color-text-subtle);font-size:13px;line-height:1.5}@media (width<=800px){.menu-overlay{padding:max(12px, var(--safe-top)) max(12px, var(--safe-right)) max(12px, var(--safe-bottom)) max(12px, var(--safe-left))}.menu-panel{padding:16px}.menu-buttons{grid-template-columns:minmax(0,1fr)}.rooms-section{border-left:0;border-top:1px solid var(--color-surface-wood-divider);grid-area:auto;padding:12px 0 0}.room-list{max-height:150px}}@media (width<=480px){.menu-actions{gap:6px}.menu-actions .menu-button{padding:10px 6px;font-size:13px}.menu-settings{justify-content:center}}.team-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:4px;display:flex}.team-label{width:100%;color:var(--color-text);font-family:var(--font-interface);margin-bottom:4px;font-size:13px}.diff-chip{min-height:32px;font-size:13px;font-family:var(--font-interface);color:var(--color-text-secondary);background:var(--color-surface-panel-raised);cursor:pointer;border:2px solid #0000;border-radius:4px;padding:4px 10px}.diff-chip:hover{background:var(--color-surface-hover)}.diff-chip.selected{border-color:var(--color-selection);background:var(--color-surface-wood-top);color:var(--color-primary-hover)}.menu-status{color:var(--color-primary);font-family:var(--font-interface);min-height:18px;font-size:15px}.menu-error{color:var(--color-danger-text);font-family:var(--font-interface);min-height:17px;font-size:14px}.menu-status,.menu-error{border:1px solid var(--color-menu-status-border);background:linear-gradient(135deg, var(--color-surface-wood), var(--color-surface-background));box-shadow:0 3px 8px rgb(var(--color-shadow-deep-rgb) / .3);text-align:center;overflow-wrap:anywhere;border-radius:6px;padding:10px 14px}.menu-error{border-color:var(--color-danger-error-border)}.menu-status:empty,.menu-error:empty{display:none}@media (prefers-reduced-motion:reduce){.menu-button{transition:none}}.invite-panel{top:calc(var(--safe-top) + 10px);left:calc(var(--safe-left) + 10px);box-sizing:border-box;max-width:calc(100vw - var(--safe-left) - var(--safe-right) - 156px);background:linear-gradient(135deg, var(--color-surface-wood), var(--color-surface-background));border:1px solid var(--color-surface-border);color:var(--color-primary);font-family:var(--font-interface);z-index:10;border-radius:8px;align-items:center;gap:8px;padding:8px 10px;font-size:13px;display:flex;position:fixed}.invite-panel input{background:var(--color-surface-field);width:320px;min-width:0;color:var(--color-text-secondary);border:1px solid var(--color-surface-border-subtle);border-radius:4px;padding:4px 6px;font-size:12px}.invite-panel button{font-size:13px;font-family:var(--font-interface);color:var(--color-text-inverse);background:var(--color-secondary);cursor:pointer;border:none;border-radius:4px;flex-shrink:0;padding:4px 10px}.to-menu-button{top:calc(var(--safe-top) + 10px);right:calc(var(--safe-right) + 10px);box-sizing:border-box;height:var(--game-menu-button-height);font-size:15px;font-family:var(--font-display);color:var(--color-primary);background:linear-gradient(var(--color-surface-wood-top), var(--color-surface-wood));border:1px solid var(--color-surface-border);border-top:2px solid var(--color-surface-border-light);box-shadow:0 3px 10px rgb(var(--color-shadow-deep-rgb) / .45);cursor:pointer;z-index:10;border-radius:8px;padding:9px 16px;position:fixed}.hud-ping{top:calc(var(--safe-top) + 10px + var(--game-menu-button-height) + 6px);right:calc(var(--safe-right) + 12px);font-family:var(--font-interface);color:var(--color-text-bright);text-shadow:0 1px 3px var(--color-outline);pointer-events:none;z-index:9;font-size:14px;position:fixed}.to-menu-button:hover{background:linear-gradient(var(--color-surface-wood-top-hover), var(--color-surface-wood))}.to-menu-button:focus-visible{outline:3px solid var(--color-primary-hover);outline-offset:3px}.game-menu,.control-settings{max-width:calc(100vw - var(--safe-left) - var(--safe-right) - 24px);max-height:calc(100dvh - var(--safe-top) - var(--safe-bottom) - 24px);color:var(--color-text);background:0 0;border:0;padding:0}.game-menu::backdrop,.control-settings::backdrop{background:rgb(var(--color-surface-backdrop-rgb) / .72)}.menu-button-settings{background:var(--color-surface-panel-raised);border:1px solid var(--color-surface-control-border);color:var(--color-text)}.fullscreen-control{gap:8px;display:grid}.fullscreen-control button:disabled{opacity:.6;cursor:default;filter:none;box-shadow:none}.fullscreen-status{color:var(--color-text-secondary);font:13px / 1.5 var(--font-interface);margin:0}.fullscreen-status:empty{display:none}.control-settings-panel h2{color:var(--color-primary);font:18px var(--font-display);align-self:stretch;margin:0}.control-settings-field{width:100%;color:var(--color-text-secondary);font:14px var(--font-interface);flex-direction:column;gap:8px;display:flex}.control-settings-field select{box-sizing:border-box;border:1px solid var(--color-surface-wood-border);background:var(--color-surface-field);width:100%;min-height:44px;color:var(--color-primary);border-radius:6px;padding:8px;font-size:16px}.control-settings-field select:focus-visible{outline:2px solid var(--color-surface-border-light);outline-offset:2px}.control-settings-field select:disabled{opacity:.5}.control-settings-field input[type=range]{width:100%;min-height:32px;accent-color:var(--color-secondary);margin:0}.control-settings-field input[type=range]:disabled{opacity:.5}.control-settings-field output{text-align:right;color:var(--color-primary);font-variant-numeric:tabular-nums}.control-settings-hint{color:var(--color-text-secondary);font:14px / 1.5 var(--font-interface);margin:0}.control-settings-panel>.menu-button{width:100%}.game-menu-panel{border-color:var(--color-surface-border);background:linear-gradient(145deg, var(--color-surface-wood), var(--color-surface-background));gap:16px;width:420px}.game-menu-panel h3{color:var(--color-primary);font:18px var(--font-display);margin:0}.game-controls{border:1px solid var(--color-surface-wood-top-hover);background:rgb(var(--color-shadow-deep-rgb) / .2);font:14px / 1.5 var(--font-interface);border-radius:8px;align-self:stretch;gap:12px;margin:0;padding:16px;list-style:none;display:grid}.game-menu-panel .menu-actions{width:100%}.game-menu-hint{color:var(--color-text-subtle);font:12px / 1.5 var(--font-interface);margin:0}.deathmatch-hud{color:var(--color-text);background:rgb(var(--color-surface-backdrop-rgb) / .9);border:1px solid var(--color-surface-wood-border);font:12px var(--font-interface);border-radius:6px;padding:10px 12px}.game-match-info{width:100%;min-width:0}.kill-feed{top:calc(var(--safe-top) + 16px);left:calc(var(--safe-left) + 16px);z-index:5;width:min(440px, calc(100vw - var(--safe-left) - var(--safe-right) - 32px));pointer-events:none;flex-direction:column;align-items:flex-start;gap:5px;margin:0;padding:0;list-style:none;display:flex;position:fixed}.kill-feed-row{box-sizing:border-box;max-width:100%;color:var(--color-text);background:rgb(var(--color-surface-backdrop-rgb) / .9);border:1px solid var(--color-surface-wood-border);font:bold 13px / 1.3 var(--font-interface);border-radius:4px;align-items:center;gap:10px;padding:5px 10px;display:flex}.kill-feed-row span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.kill-feed-row img{object-fit:contain;flex:0 0 48px}.deathmatch-title{color:var(--color-primary);margin-bottom:8px}.deathmatch-table-scroll{max-height:38dvh;overflow:auto}.deathmatch-hud table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.deathmatch-hud th,.deathmatch-hud td{text-align:right;white-space:nowrap;padding:5px 7px}.deathmatch-hud th:first-child,.deathmatch-hud td:first-child{text-align:left}.deathmatch-hud th{background:var(--color-surface-inset);position:sticky;top:0}.deathmatch-hud tr.is-local{background:var(--color-surface-hover);outline:1px solid var(--color-primary);outline-offset:-1px;font-weight:700}.deathmatch-hud tr.is-departed{opacity:.65}.deathmatch-lobby{max-width:calc(100vw - 24px);color:var(--color-text);background:0 0;border:0;padding:0}.deathmatch-lobby::backdrop{background:linear-gradient(rgb(var(--color-surface-backdrop-rgb) / .45), rgb(var(--color-surface-backdrop-rgb) / .7)), url(/img/main2.png) center / cover no-repeat}.deathmatch-lobby-panel{gap:18px;width:520px}.deathmatch-lobby-panel h2{font:18px var(--font-display);color:var(--color-primary);margin:0}.deathmatch-lobby-settings{grid-template-columns:1fr 1fr;gap:16px;width:100%;display:grid}.deathmatch-lobby-settings label,.deathmatch-lobby-invite{font:13px var(--font-interface);flex-direction:column;gap:7px;display:flex}.deathmatch-lobby-invite{width:100%}.deathmatch-lobby input{box-sizing:border-box;border:1px solid var(--color-surface-wood-border);background:var(--color-surface-field);width:100%;min-width:0;color:var(--color-primary);border-radius:6px;padding:10px;font-size:15px}.deathmatch-lobby input:disabled{opacity:.7}.deathmatch-lobby input:focus{outline:2px solid var(--color-surface-border-light);outline-offset:2px}.deathmatch-lobby-players{box-sizing:border-box;border:1px solid var(--color-surface-border-subtle);background:var(--color-surface-inset);width:100%;min-height:90px;max-height:28vh;font:14px/1.8 var(--font-interface);border-radius:6px;margin:0;padding:8px 12px;list-style:none;overflow:auto}.deathmatch-lobby-panel .menu-actions{width:100%}.lobby-remove-bot{border:1px solid var(--color-surface-control-border);background:var(--color-surface-panel-raised);color:var(--color-text);cursor:pointer;border-radius:4px;margin-left:8px;padding:2px 8px}.lobby-remove-bot:disabled{opacity:.5;cursor:default}.menu-button-danger{border-color:var(--color-danger-button-border);color:var(--color-danger-text-dim)}@media (width<=420px){.deathmatch-lobby-settings{grid-template-columns:1fr}}.deathmatch-lobby [hidden]{display:none!important}.deathmatch-lobby .menu-button-danger{background:linear-gradient(var(--color-danger-surface), var(--color-danger-surface-deep));color:var(--color-danger-text-bright);border:1px solid var(--color-danger-border)}.deathmatch-lobby .menu-actions>.menu-button:last-child{background:var(--color-surface-panel-raised);color:var(--color-text);border:1px solid var(--color-surface-control-border)}.nickname-field{color:var(--color-text-secondary);text-align:left;flex-direction:column;gap:6px;margin-bottom:18px;font-size:13px;display:flex}.nickname-field input{box-sizing:border-box;border:1px solid var(--color-surface-border-strong);background:var(--color-surface-field);width:100%;min-width:0;color:var(--color-text-bright);font:inherit;border-radius:8px;padding:10px 12px;font-size:16px}.nickname-field input:focus{outline:2px solid var(--color-info);outline-offset:2px}.team-lobby-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.team-lobby-column{border:1px solid var(--color-surface-border);border-radius:8px;min-width:0;padding:12px}.team-lobby-column h2{font:16px var(--font-display);margin:0 0 12px}.team-lobby-column ul{gap:8px;padding:0;list-style:none;display:grid}.team-lobby-column li{overflow-wrap:anywhere}.team-lobby-empty{color:var(--color-text-subtle)}@media (width<=480px){.team-lobby-columns{gap:6px}.team-lobby-column{padding:6px}}.team-statistics .team-statistics-heading th{text-align:left;border-bottom:1px solid var(--color-surface-border-subtle);padding-top:12px;position:static}.team-statistics td:last-child{white-space:normal}
