:root{color:#ece7db;background:#0b0b0a;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:15px;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:none;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#app,#game-root{width:100%;height:100%;margin:0;overflow:hidden;overscroll-behavior:none;touch-action:none}body,#game-root{background:#070706}.booting #hud{visibility:hidden;opacity:0}.name-pending .hud-top,.name-pending .hud-bottom,.name-pending .stick,.name-pending .toast{display:none}canvas{display:block;width:100%;height:100%;cursor:crosshair;image-rendering:pixelated;image-rendering:crisp-edges}#hud{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;color:#ece7db}.name-gate{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;pointer-events:auto;background:#00000057}.name-gate[hidden]{display:none}.name-form{display:grid;width:min(280px,calc(100vw - 36px));gap:8px;padding:14px;border:1px solid rgba(215,194,118,.46);background:#070706db}.name-form label{color:#c4bba9;font-size:11px}.name-form input,.name-form button{height:34px;border-radius:0;font:inherit}.name-form input{border:1px solid rgba(236,231,219,.28);padding:0 9px;color:#ece7db;background:#0f0f0df2;outline:none}.name-form input:focus{border-color:#d7c276b3}.name-form button{border:1px solid rgba(215,194,118,.5);color:#19140c;background:#d7c276}.hud-top{position:absolute;top:max(var(--weapon-top, 12px),env(safe-area-inset-top));left:max(var(--weapon-left, 12px),env(safe-area-inset-left));right:auto;display:flex;align-items:flex-start;justify-content:flex-start;gap:12px}.readout{display:none;gap:4px;min-width:0;padding:8px 10px;background:#080807c7;border:1px solid rgba(236,231,219,.17)}.readout strong{font-size:20px;line-height:1}.readout span{overflow:hidden;max-width:min(60vw,420px);color:#c4bba9;font-size:12px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}#weapon-button{--reload-progress: 0%;pointer-events:auto;min-width:120px;height:32px;display:inline-flex;align-items:center;gap:7px;padding:0 9px 0 8px;border:1px solid rgba(236,231,219,.26);border-radius:0;color:#ece7db;background:linear-gradient(90deg,rgba(215,194,118,.24) 0 var(--reload-progress),transparent var(--reload-progress) 100%),#080807bd;font:inherit;font-size:12px;opacity:0}#weapon-button.reloading{border-color:#d7c2769e;color:#f1e5bd}#weapon-button:before{content:"";display:inline-block;flex:0 0 auto;width:15px;height:13px;image-rendering:pixelated}#weapon-button[data-weapon=pistol]:before{background:linear-gradient(#d7c276 0,#d7c276 0) 2px 3px / 9px 3px no-repeat,linear-gradient(#d7c276 0,#d7c276 0) 10px 4px / 3px 2px no-repeat,linear-gradient(#7c6b44 0,#7c6b44 0) 5px 6px / 3px 5px no-repeat,linear-gradient(#3a3128 0,#3a3128 0) 1px 6px / 5px 2px no-repeat}#weapon-button[data-weapon=shotgun]:before{background:linear-gradient(#b79243 0,#b79243 0) 1px 4px / 13px 2px no-repeat,linear-gradient(#7c4d2e 0,#7c4d2e 0) 2px 6px / 8px 3px no-repeat,linear-gradient(#3a3128 0,#3a3128 0) 10px 6px / 3px 2px no-repeat,linear-gradient(#7c4d2e 0,#7c4d2e 0) 0 7px / 4px 3px no-repeat}#weapon-button[data-weapon=rifle]:before{background:linear-gradient(#d7c276 0,#d7c276 0) 0 4px / 15px 2px no-repeat,linear-gradient(#8b6c38 0,#8b6c38 0) 2px 6px / 8px 2px no-repeat,linear-gradient(#8b6c38 0,#8b6c38 0) 4px 8px / 4px 3px no-repeat,linear-gradient(#3a3128 0,#3a3128 0) 11px 3px / 3px 1px no-repeat}#weapon-button[data-weapon=crossbow]:before{background:linear-gradient(#c0ad70 0,#c0ad70 0) 1px 6px / 13px 1px no-repeat,linear-gradient(#c0ad70 0,#c0ad70 0) 7px 1px / 1px 11px no-repeat,linear-gradient(#7c4d2e 0,#7c4d2e 0) 4px 5px / 7px 3px no-repeat,linear-gradient(#3a3128 0,#3a3128 0) 11px 5px / 3px 3px no-repeat}#weapon-button:active{background:linear-gradient(90deg,rgba(215,194,118,.28) 0 var(--reload-progress),transparent var(--reload-progress) 100%),#3c3225e6}.hud-bottom{position:absolute;left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));display:flex;justify-content:center}.bar-stack{display:none;width:min(360px,46vw);gap:6px}.meter{display:grid;grid-template-columns:48px 1fr;align-items:center;height:14px;color:#c4bba9;font-size:11px}.meter:after{content:"";grid-column:2;grid-row:1;height:8px;border:1px solid rgba(236,231,219,.22);background:#080807b8}.meter i{grid-column:2;grid-row:1;z-index:1;width:100%;height:6px;margin-left:1px;background:#b54835;transform-origin:left center}.meter.ammo i{background:#c7a447}.stick{position:absolute;width:118px;height:118px;border:1px solid rgba(236,231,219,.16);border-radius:50%;background:#09090838;opacity:.72;box-shadow:inset 0 0 0 1px #0000006b,inset 0 0 18px #0000006b}.stick i{position:absolute;left:43px;top:43px;width:32px;height:32px;border:1px solid rgba(236,231,219,.28);border-radius:50%;background:#ece7db1f}.left-stick{left:max(18px,env(safe-area-inset-left));bottom:max(36px,calc(env(safe-area-inset-bottom) + 28px))}.right-stick{right:max(18px,env(safe-area-inset-right));bottom:max(36px,calc(env(safe-area-inset-bottom) + 28px));border-color:#d7c2762e;background:#0909083d;box-shadow:inset 0 0 0 1px #d7c2760a,inset 0 0 18px #00000070}.stick.active{opacity:1;background:#0909085c}.right-stick i{border-color:#d7c27652;background:#d7c27617;box-shadow:inset 0 0 0 1px #00000042}.right-stick i:before{content:"";position:absolute;pointer-events:none}.right-stick i:before{left:50%;top:50%;width:4px;height:4px;background:#d7c27680;border-radius:50%;transform:translate(-50%,-50%)}.right-stick.active,.right-stick.fire-ready{border-color:#d7c2764d;background:#12100c52}.right-stick.fire-ready i{border-color:#f1d57a7a;background:#d7c27621}.right-stick.fire-flash i{animation:fire-button-pulse .14s steps(2,end)}@keyframes fire-button-pulse{0%{background-color:#f1d57a3d}to{background-color:#d7c27617}}.toast{position:absolute;left:50%;top:28%;min-width:96px;padding:0;border:0;color:#ece7db;background:transparent;font-size:13px;text-align:center;opacity:0;transform:translate(-50%);display:none}.toast.show{opacity:0}@media(min-width:800px){.stick{width:104px;height:104px}.stick i{left:38px;top:38px;width:28px;height:28px}}@media(hover:hover)and (pointer:fine){.stick{display:none}}
