@font-face{font-family:Silkscreen;src:url(/fonts/silkscreen-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Silkscreen;src:url(/fonts/silkscreen-700.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{--pixel-font: "Silkscreen", "Courier New", ui-monospace, monospace}html,body{font-family:var(--pixel-font)}.editor-body{margin:0;height:100%;overflow:hidden;background:#06090d;color:#c9d5e5;font-family:var(--pixel-font);font-size:13px;line-height:1.5}.editor{position:fixed;top:0;right:0;bottom:0;left:0;display:flex}.editor-panel{width:318px;flex:0 0 318px;overflow-y:auto;padding:16px;border-right:1px solid #263549;background:#0d1117}.editor-panel h1{margin:0 0 6px;font-size:16px;letter-spacing:.04em}.editor-hint{margin:0 0 14px;color:#7d8ca1;font-size:12px}.editor-tools{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:16px}.editor-tools button,.editor-actions button,.editor-row button,.editor-library-list button{padding:6px 8px;border:1px solid #4a607f;border-radius:3px;background:#1b2534;color:#c9d5e5;font:inherit;cursor:pointer}.editor-tools button:hover,.editor-actions button:hover,.editor-row button:hover,.editor-library-list button:hover{background:#253349}.editor-tools button.is-active{border-color:#63d2ff;background:#1f3a4e;color:#dff6ff}.editor-props{margin-bottom:12px}.editor-field{display:grid;grid-template-columns:1fr 92px;align-items:center;gap:8px;margin-bottom:7px}.editor-field input{width:100%;box-sizing:border-box;padding:4px 6px;border:1px solid #3c4b63;border-radius:3px;background:#111925;color:#c9d5e5;font:inherit}.editor-check{display:flex;align-items:center;gap:7px;margin-bottom:16px;color:#9fb0c6}.editor-actions{display:grid;gap:6px;margin-bottom:14px}.editor-actions button.editor-danger{border-color:#7a3d46;color:#ffb3ba}.editor-actions button.editor-toggle.is-active{border-color:#63d2ff;background:#1f3a4e;color:#dff6ff}.editor-row{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:2px}.editor-input{width:100%;padding:7px 8px;border:1px solid #4a607f;border-radius:3px;background:#0d1117;color:#c9d5e5;font:inherit}.editor-input:focus{outline:none;border-color:#63d2ff}.editor-library{display:grid;gap:6px;margin-bottom:14px}.editor-library-title{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:#7d8fa6}.editor-library-list{display:flex;flex-direction:column;gap:4px;max-height:170px;overflow:auto}.editor-library-list button{text-align:left}.editor-status{min-height:34px;margin-bottom:12px;color:#8fe3a7;font-size:12px}.editor-back{color:#63d2ff;text-decoration:none}.editor-back:hover{text-decoration:underline}.editor-stage{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;padding:14px}.editor-stage canvas{width:100%;max-width:calc((100vh - 28px) * (1600 / 900));max-height:calc(100vh - 28px);aspect-ratio:1600 / 900;border:1px solid #33445c;border-radius:4px;cursor:default;touch-action:none}.tuning-panel{position:fixed;top:14px;right:14px;z-index:100;width:292px;border:1px solid #33445c;border-radius:6px;background:#0d1117eb;color:#c9d5e5;font-family:var(--pixel-font);font-size:12px;line-height:1.4;-webkit-user-select:none;user-select:none;box-shadow:0 8px 24px #00000073}.tuning-header{display:flex;align-items:center;justify-content:space-between;padding:6px 8px;background:#2a3a50b3;border-bottom:1px solid #33445c;cursor:pointer;letter-spacing:.04em}.tuning-panel.is-minimized .tuning-header{border-bottom:0}.tuning-panel.is-minimized .tuning-body{display:none}.tuning-minimize{width:22px;height:20px;padding:0;border:1px solid #4a607f;border-radius:3px;background:#1b2534;color:#c9d5e5;font:inherit;cursor:pointer}.tuning-body{max-height:min(70vh,560px);overflow-y:auto;padding:8px}.tuning-row{display:grid;grid-template-columns:86px 1fr 46px;align-items:center;gap:6px;margin-bottom:5px;cursor:default}.tuning-row input[type=range]{width:100%;accent-color:#63d2ff}.tuning-value{text-align:right;color:#8fe3a7}.tuning-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;padding-top:7px;border-top:1px solid #263549;color:#7d8ca1}.tuning-footer button{padding:4px 7px;border:1px solid #4a607f;border-radius:3px;background:#1b2534;color:#c9d5e5;font:inherit;cursor:pointer}.tuning-footer button:hover{background:#253349}body:not(.dev-settings) .tuning-panel{display:none}.menu{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;align-items:center;justify-content:center;font-family:var(--pixel-font);color:#c9d5e5;pointer-events:none;image-rendering:pixelated}.menu *,.menu *:before,.menu *:after{box-sizing:border-box}.pixel-card{pointer-events:auto;display:none;flex-direction:column;gap:14px;background:#131d2b;border:3px solid #2c3d55;box-shadow:0 0 0 3px #0a121c,0 18px 60px #0009;padding:22px 24px;width:min(560px,calc(100vw - 40px));max-height:calc(100vh - 60px);overflow:auto}.menu[data-screen=auth] .auth-card,.menu[data-screen=home] .home-card,.menu[data-screen=pregame] .pregame-card{display:flex}.pixel-title{margin:0;font-size:26px;letter-spacing:4px;color:#6ee7a0;text-shadow:3px 3px 0 #0a121c}.pixel-title-small{margin:0;font-size:13px;letter-spacing:3px;color:#63d2ff;text-transform:uppercase}.pixel-sub{margin:0;font-size:12px;color:#7d8fa6;line-height:1.5}.pixel-field{display:flex;flex-direction:column;gap:6px;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:#7d8fa6}.pixel-input{font:inherit;font-size:15px;letter-spacing:1px;color:#e8f1ff;background:#0a121c;border:2px solid #2c3d55;padding:9px 10px;outline:none}.pixel-input:focus{border-color:#63d2ff}.pixel-btn{font:inherit;font-size:13px;letter-spacing:2px;text-transform:uppercase;cursor:pointer;color:#08120c;background:#6ee7a0;border:none;border-bottom:4px solid #3f9c69;padding:10px 14px;transition:transform 60ms steps(2)}.pixel-btn:hover:not(:disabled){transform:translateY(-1px)}.pixel-btn:active:not(:disabled){transform:translateY(2px);border-bottom-width:2px}.pixel-btn:disabled{cursor:not-allowed;background:#33414f;border-bottom-color:#202a36;color:#6d7d90}.pixel-btn-quiet{background:#2c3d55;border-bottom-color:#1a2534;color:#c9d5e5}.pixel-error{margin:0;min-height:16px;font-size:12px;color:#ff8a7a}.home-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.room-list{display:flex;flex-direction:column;gap:8px;max-height:46vh;overflow:auto}.room-empty{margin:0;font-size:12px;color:#7d8fa6}.room-row{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#0f1824;border:2px solid #22303f;padding:10px 12px}.room-info{display:flex;flex-direction:column;gap:3px;min-width:0}.room-name{font-size:14px;color:#e8f1ff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-meta{font-size:11px;letter-spacing:1px;color:#7d8fa6;text-transform:uppercase}.room-join{flex:none}.pregame-card{width:min(880px,calc(100vw - 40px))}.pregame-body{display:grid;grid-template-columns:minmax(220px,1fr) minmax(260px,1.4fr);gap:18px}@media(max-width:700px){.pregame-body{grid-template-columns:1fr}}.pregame-panel{display:flex;flex-direction:column;gap:10px;min-height:120px}.player-list{display:flex;flex-direction:column;gap:6px}.player-row{display:flex;align-items:center;gap:8px;background:#0f1824;border:2px solid #22303f;padding:8px;flex-wrap:wrap}.swatch{width:14px;height:14px;border:2px solid #0a121c;flex:none}.player-name{font-size:14px;color:#e8f1ff}.player-name.me{color:#6ee7a0}.player-badges{margin-left:auto;font-size:10px;letter-spacing:2px;color:#ffd166}.palette-picker{display:flex;gap:4px;width:100%;flex-wrap:wrap}.palette-chip{width:20px;height:20px;padding:0;border:2px solid #0a121c;cursor:pointer}.palette-chip.active{border-color:#fff;transform:translateY(-1px)}.map-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;max-height:46vh;overflow:auto}.map-card{font:inherit;display:flex;flex-direction:column;gap:5px;padding:5px;cursor:pointer;background:#0f1824;border:2px solid #22303f;color:#c9d5e5}.map-card.selected{border-color:#6ee7a0;box-shadow:0 0 0 2px #2c5c45 inset}.map-card:disabled{cursor:default}.map-card.selected .map-name{color:#6ee7a0}.map-thumb-canvas{width:100%;height:auto;display:block;image-rendering:pixelated}.map-name{font-size:11px;letter-spacing:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pregame-actions{display:flex;align-items:center;gap:14px;border-top:2px solid #22303f;padding-top:12px}.pixel-btn-go{min-width:180px}.settings-button{pointer-events:auto;position:absolute;right:18px;bottom:18px;width:44px;height:44px;font-size:20px;line-height:1;cursor:pointer;color:#c9d5e5;background:#131d2b;border:3px solid #2c3d55;box-shadow:0 0 0 3px #0a121c}.settings-modal{position:absolute;right:18px;bottom:72px;width:min(300px,calc(100vw - 36px));display:none}.settings-modal.open{display:flex}.dev-toggle{display:flex;align-items:center;gap:10px;pointer-events:auto;cursor:pointer;padding:8px 10px;border:2px solid #2c3d55;background:#0f1824;font-size:11px;letter-spacing:1px;color:#c9d5e5}.dev-toggle input{width:16px;height:16px;margin:0;accent-color:#6ee7a0;cursor:pointer}.dev-toggle-text{line-height:1.4}.menu[data-screen=game] .settings-button{display:none}.game-hud{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;display:flex;align-items:center;justify-content:center}.countdown,.round-banner{position:absolute;display:none;flex-direction:column;align-items:center;gap:6px;text-shadow:4px 4px 0 #05090e}.countdown.open,.round-banner.open{display:flex}.countdown-number{font-size:96px;font-weight:700;line-height:1;color:#ffd166;animation:count-pop .9s steps(6) infinite}.countdown-map{font-size:16px;letter-spacing:4px;text-transform:uppercase;color:#c9d5e5}@keyframes count-pop{0%{transform:scale(1)}30%{transform:scale(1.08)}to{transform:scale(1)}}.banner-title{font-size:clamp(34px,7vw,72px);letter-spacing:6px;color:#6ee7a0;animation:banner-in .42s steps(5) 1}.banner-sub{font-size:14px;letter-spacing:3px;text-transform:uppercase;color:#9db0c6}@keyframes banner-in{0%{transform:scale(.4) translateY(30px);opacity:0}60%{transform:scale(1.12) translateY(0);opacity:1}to{transform:scale(1)}}.scoreboard{display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);min-width:min(460px,calc(100vw - 40px));background:#0a121cf0;border:3px solid #2c3d55;box-shadow:0 0 0 3px #0a121c;padding:12px}.scoreboard.open{display:block}.score-table{display:flex;flex-direction:column;gap:4px}.score-row{display:grid;grid-template-columns:18px 1fr 72px 72px;align-items:center;gap:10px;padding:7px 8px;background:#0f1824;border:2px solid #1b2633;font-size:14px}.score-row.me{border-color:#6ee7a0}.score-header{background:transparent;border-color:transparent;font-size:10px;letter-spacing:2px;color:#7d8fa6}.score-swatch{width:14px;height:14px;border:2px solid #0a121c}.score-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.score-num{text-align:right;font-variant-numeric:tabular-nums}.game-hint{position:absolute;bottom:14px;left:50%;transform:translate(-50%);font-size:11px;letter-spacing:2px;text-transform:uppercase;color:#c9d5e599}.bind-list{display:grid;gap:8px;margin:14px 0}.bind-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.bind-label{color:var(--pixel-dim, #93a4b8);font-size:11px}.bind-btn{min-width:150px}.weapon-count{display:flex;align-items:center;gap:8px}.weapon-count-label{color:var(--pixel-dim, #93a4b8);font-size:11px}.pixel-btn-small{min-width:38px;padding:4px 8px}.pixel-btn.active{outline:2px solid var(--pixel-accent, #ffe066)}@media(max-width:720px){.weapon-count{display:none}}.weapons-page{font-family:var(--pixel-font);color:#c9d5e5}.weapons-page .pixel-card{display:flex;width:auto;max-height:none;min-width:0}.weapons-page .pixel-title{font-size:22px}.weapons-page{min-height:100vh;padding:28px clamp(16px,4vw,64px) 80px;display:flex;flex-direction:column;gap:22px}.weapons-header{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}.weapons-links{display:flex;gap:10px}.weapons-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.weapon-card{padding:18px}.weapon-fields{display:grid;gap:6px;margin-top:10px}.weapon-field{display:flex;align-items:center;justify-content:space-between;gap:12px}.weapon-field-label{color:#9dadc2;font-size:11px}.weapon-input{width:110px;text-align:right}.give-card{padding:18px}.give-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}.give-select{min-width:130px}.weapons-actions{display:flex;gap:10px;position:sticky;bottom:16px;padding:12px;background:#0a101ad9;border:2px solid #2a3a52;width:fit-content}html.weapons-body,body.weapons-body{height:auto;min-height:100%;overflow-y:auto;overflow-x:hidden}html.weapons-body #app{display:none}
