@import url('./controls-settings.css');
@font-face{font-family:ZombieGame;src:url('/fonts/game-font.ttf') format('truetype');font-display:swap}
.game-ui-host{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.game-stage{position:absolute;left:0;top:0;width:1672px;height:941px;transform-origin:0 0;isolation:isolate;font-family:ZombieGame,'Microsoft YaHei',sans-serif;letter-spacing:0;pointer-events:auto;overflow:hidden;color:#f4eee2}
.game-stage .screen-backdrop{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-3;pointer-events:none}
.game-stage .screen-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,#07101735,#060b11ab);pointer-events:none}
.game-stage .screen-shade.is-live-scene{background:#040a1085}
.game-stage.is-home .screen-shade{background:linear-gradient(90deg,#04090deb,#07101780 45%,#03090b08 70%)}
.game-stage.is-hud{pointer-events:none;background:transparent}
.game-stage.layout-editing{pointer-events:auto}
.game-stage .ui-node{position:absolute;box-sizing:border-box;transform-origin:50% 50%;margin:0;padding:0;border:0;background:none;box-shadow:none;border-radius:0;overflow:visible;font:inherit}
.game-stage .ui-node>.ui-art{position:absolute;max-width:none;pointer-events:none;object-fit:contain;filter:drop-shadow(0 3px 3px #0008)}
.game-stage .ui-text{position:absolute;display:flex;align-items:center;justify-content:center;text-align:center;font-weight:800;line-height:1.25;white-space:normal;overflow-wrap:anywhere;overflow:hidden;pointer-events:none;text-shadow:0 2px 3px #000c}
.game-stage .ui-label .ui-text{justify-content:flex-start;text-align:left;font-weight:600}
.game-stage .ui-title .ui-text{font-weight:900;letter-spacing:0;line-height:1.08;text-shadow:5px 5px 0 #101516,8px 8px 0 #0008}
.game-stage .ui-subtitle .ui-text{color:#ffbf3e!important;letter-spacing:0}
.game-stage .ui-body .ui-text{font-weight:500;line-height:1.6}
.game-stage .ui-button{cursor:pointer;pointer-events:auto;transition:filter .12s}
.game-stage .ui-button:hover:not(:disabled){filter:brightness(1.18) drop-shadow(0 0 7px #ffbd4b5e)}
.game-stage .ui-button:active:not(:disabled){filter:brightness(.9)}
.game-stage .ui-button:focus-visible,.game-stage .ui-card:focus-visible{outline:3px solid #ffcf66;outline-offset:4px}
.game-stage .ui-button:disabled{cursor:default;color:#acafa9;filter:saturate(.3) brightness(.76)}
.game-stage .ui-toggle{cursor:pointer;pointer-events:auto}.game-stage .ui-toggle:focus-visible{outline:3px solid #ffcf66;outline-offset:4px}.game-stage .ui-toggle .ui-text{left:44px!important;width:390px!important;justify-content:flex-start;text-align:left}
.game-stage .ui-slider{appearance:auto;accent-color:#efb331;pointer-events:auto;cursor:pointer;min-height:24px}
.game-stage .ui-slider:focus-visible{outline:3px solid #ffcf66;outline-offset:4px}
.game-stage .switch-track{position:absolute;right:48px;top:26px;width:76px;height:33px;border:2px solid #889294;background:#172026;border-radius:20px;pointer-events:none;box-shadow:inset 0 2px 4px #0009}.game-stage .switch-thumb{position:absolute;left:3px;top:3px;width:23px;height:23px;border-radius:50%;background:#b1b4af;box-shadow:0 2px 3px #0009}.game-stage [aria-checked='true'] .switch-track{background:#dfa027;border-color:#ffce63}.game-stage [aria-checked='true'] .switch-thumb{left:46px;background:#fff0c9}
.game-stage .tone-primary>.ui-text{color:#171b20!important;text-shadow:0 1px 0 #ffc75690}
.game-stage .tone-danger>.ui-text{color:#ff9476!important}
.game-stage .ui-card{cursor:pointer;pointer-events:auto}
.game-stage .ui-card:hover:not(:disabled){filter:brightness(1.12)}
.game-stage .ui-card:disabled{cursor:default}
.game-stage .ui-progress{height:20px;overflow:hidden;border:3px solid #868f91;background:#171b20;box-shadow:inset 0 0 8px #000,0 3px 6px #0008;pointer-events:none}
.game-stage .progress-fill{height:100%;background:linear-gradient(180deg,#ffe282,#c78019);box-shadow:inset 0 2px 0 #ffebb7;transition:width .12s}
.game-stage .tone-health .progress-fill{background:linear-gradient(180deg,#e65346,#842821)}
.game-stage .tone-low .progress-fill{background:#e42e27;animation:health-pulse .8s infinite}
.game-stage .tone-xp .progress-fill{background:linear-gradient(180deg,#c9eee9,#579a9d)}
.game-stage .key-hint{position:absolute;right:28px;bottom:12px;display:block;border:1px solid #b7aa8b80;padding:3px 8px;border-radius:3px;color:#d7cdaa;font-family:monospace;font-size:20px;pointer-events:none}
.game-stage .ui-notice .ui-text{font-weight:500;letter-spacing:0;color:#c6cccb!important}
.game-stage .ui-strip{background:repeating-linear-gradient(-45deg,#ffb326 0,#ffb326 22px,#171c21 22px,#171c21 35px);border-block:3px solid #ffbc3e;box-shadow:0 3px 10px #0009}
.game-stage .ui-strip .ui-text{background:#ecad2eee;color:#181e24!important;text-shadow:none;letter-spacing:0}
.game-stage .ui-line{border-top:2px solid #adb7b44f}
.game-stage .ui-resource>.ui-text{font-weight:700}
.game-stage .ui-icon{pointer-events:none}
.game-stage [data-ui-id='hud-mission'] .ui-text,.game-stage [data-ui-id='hud-ammo'] .ui-text{justify-content:flex-start;text-align:left}
@keyframes health-pulse{50%{filter:brightness(1.4)}}
@keyframes ui-screen-enter{from{opacity:0;filter:brightness(.8)}to{opacity:1;filter:brightness(1)}}
@keyframes ui-screen-exit{from{opacity:1}to{opacity:0}}
@keyframes ui-value-change{0%{filter:brightness(1.8);transform:scale(1.04)}100%{filter:brightness(1);transform:scale(1)}}
@keyframes ui-selected{0%,100%{filter:brightness(1)}50%{filter:brightness(1.16)}}
@keyframes ui-damage{0%,45%{filter:sepia(1) saturate(4) brightness(1.35)}100%{filter:none}}
.game-stage.screen-enter .ui-node:not(.ui-resource){animation:ui-screen-enter .24s ease-out both}
.game-stage .screen-exit{position:absolute;inset:0;z-index:999;pointer-events:none;animation:ui-screen-exit .14s ease-out forwards}
.game-stage .screen-exit *{pointer-events:none!important;animation:none!important}
.game-stage .ui-text.value-changed{animation:ui-value-change .3s ease-out}
.game-stage .ui-card.is-selected{animation:ui-selected 1.2s ease-in-out infinite}
.game-stage .ui-resource.damage-flash{animation:ui-damage .3s ease-out}
.game-stage .ui-progress .progress-fill{transition:width .24s ease-out}
.game-stage .ui-button,.game-stage .ui-card{will-change:filter}
@media(prefers-reduced-motion:reduce){.game-stage *{animation:none!important;transition:none!important}}
.mobile-game-menu{position:absolute;inset:0;z-index:3;pointer-events:auto;overflow:auto;overscroll-behavior:contain;padding:8px 14px;color:#f5efdf;background:#101b24ed var(--mobile-panel-art) center/100% 100% no-repeat;font-family:ZombieGame,'Microsoft YaHei',sans-serif}.mobile-game-menu[hidden]{display:none}.game-stage.mobile-menu-source{visibility:hidden;pointer-events:none}.mobile-menu-content{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:8px 12px;max-width:1100px;margin:0 auto}.mobile-menu-node{position:relative;min-width:0;font-size:14px;line-height:1.5;overflow-wrap:anywhere}.mobile-menu-title{grid-column:1/-1;text-align:center;font-size:24px;font-weight:900;color:#ffcb59;text-shadow:2px 2px #000}.mobile-menu-subtitle{grid-column:1/-1;text-align:center;color:#ffcf6e;font-size:15px}.mobile-menu-notice{color:#c2cdc7;font-size:12px}.mobile-menu-button{min-height:44px;min-width:44px;border:0;padding:8px 20px;background:transparent var(--mobile-button-art) center/100% 100% no-repeat;font:700 16px ZombieGame,'Microsoft YaHei',sans-serif;color:#f7f0dc;cursor:pointer;touch-action:manipulation;line-height:1.3}.mobile-menu-button.is-primary{background-image:var(--mobile-primary-art);color:#171c21}.mobile-menu-button:disabled{opacity:.5}.mobile-menu-button:focus-visible,.mobile-menu-card:focus-visible{outline:3px solid #ffcf63}.mobile-menu-card{padding:10px 14px;border:0;background:var(--mobile-card-art) center/100% 100% no-repeat;color:#f8f2e3;font-family:inherit;display:flex;flex-direction:column;gap:5px;min-height:44px;text-align:center;touch-action:manipulation}.mobile-menu-card.is-selected{background-image:var(--mobile-selected-art)}.mobile-menu-card>.mobile-menu-node:first-child{font-size:18px;color:#ffcf69}.mobile-menu-card .mobile-menu-art{height:65px;width:100%;object-fit:contain}.mobile-menu-card .mobile-menu-button{width:100%;margin-top:auto}.mobile-menu-content>input{min-height:44px;width:100%;accent-color:#ffc147}.mobile-menu-content>[data-mobile-ui-id='wallet']{display:none}.mobile-menu-content>[data-mobile-ui-id='back']{grid-column:1/-1;justify-self:center;min-width:140px}.mobile-game-menu[data-screen='home'] .mobile-menu-content{grid-template-columns:repeat(2,minmax(0,1fr));max-width:650px}.mobile-game-menu[data-screen='home'] [data-mobile-ui-id='start-button']{grid-column:1/-1;min-height:52px}.mobile-game-menu[data-screen='home'] [data-mobile-ui-id='home-tagline'],.mobile-game-menu[data-screen='home'] [data-mobile-ui-id='home-record']{grid-column:1/-1;text-align:center}.mobile-game-menu[data-screen='settings'] .mobile-menu-content{max-width:740px}.mobile-game-menu[data-screen='settings'] [data-mobile-ui-id='settings-hint']{grid-column:1/-1;text-align:center}.mobile-game-menu[data-screen='settings'] [data-mobile-ui-id='settings-volume-label']{align-self:center;font-size:15px;text-align:center}.mobile-game-menu[data-screen='tutorial'] .mobile-menu-content{grid-template-columns:minmax(150px,1fr) minmax(170px,1.5fr);max-width:800px;gap:5px 16px}.mobile-game-menu[data-screen='tutorial'] [data-mobile-ui-id^='control-key']{color:#ffcf69;text-align:right}.mobile-game-menu[data-screen='tutorial'] [data-mobile-ui-id='tutorial-note']{grid-column:1/-1;font-size:12px;text-align:center}.mobile-game-menu[data-screen='tutorial'] [data-mobile-ui-id='tutorial-start']{grid-column:1/-1;justify-self:center;min-width:190px}.mobile-game-menu[data-screen^='workshop'] .mobile-menu-content,.mobile-game-menu[data-screen^='level-select'] .mobile-menu-content,.mobile-game-menu[data-screen='upgrade'] .mobile-menu-content{grid-template-columns:repeat(3,minmax(0,1fr))}.mobile-game-menu[data-screen^='workshop'] [data-mobile-ui-id='workshop-mod-title'],.mobile-game-menu[data-screen^='workshop'] [data-mobile-ui-id='workshop-mod-desc'],.mobile-game-menu[data-screen^='workshop'] [data-mobile-ui-id='workshop-hint']{grid-column:1/-1;text-align:center}.mobile-game-menu[data-screen^='workshop'] [data-mobile-ui-id^='mod-']{font-size:12px;padding:7px 12px}.mobile-game-menu[data-screen='upgrade'] [data-mobile-ui-id='upgrade-stats'],.mobile-game-menu[data-screen='upgrade'] [data-mobile-ui-id='upgrade-hint'],.mobile-game-menu[data-screen='upgrade'] [data-mobile-ui-id='upgrade-home']{grid-column:1/-1;justify-self:center;text-align:center}.mobile-game-menu[data-screen='upgrade'] .mobile-menu-card{cursor:pointer;min-height:180px}.mobile-game-menu[data-screen='upgrade'] .mobile-menu-card>.mobile-menu-art[data-mobile-ui-id$='-icon']{display:block;height:36px;width:36px;align-self:center;flex:0 0 36px}.mobile-game-menu[data-screen='upgrade'] .mobile-menu-card [data-mobile-ui-id$='-tag']{margin-top:auto;color:#ffc667}.mobile-game-menu[data-screen^='level-select'] [data-mobile-ui-id='level-select-hint'],.mobile-game-menu[data-screen^='level-select'] [data-mobile-ui-id='level-select-back']{grid-column:1/-1;justify-self:center;text-align:center}.mobile-game-menu[data-screen='pause'] .mobile-menu-content,.mobile-game-menu[data-screen^='confirm'] .mobile-menu-content{max-width:740px}.mobile-game-menu[data-screen='pause'] [data-mobile-ui-id='pause-hint'],.mobile-game-menu[data-screen^='confirm'] [data-mobile-ui-id='confirm-message']{grid-column:1/-1;text-align:center}.mobile-game-menu[data-screen='lose'] [data-mobile-ui-id='end-stats'],.mobile-game-menu[data-screen='final'] [data-mobile-ui-id='final-stats'],.mobile-game-menu[data-screen='level-complete'] [data-mobile-ui-id='level-complete-stats'],.mobile-game-menu[data-screen='recovery'] [data-mobile-ui-id='recovery-message']{grid-column:1/-1;text-align:center}.mobile-game-menu[data-screen='final'] [data-mobile-ui-id='final-home'],.mobile-game-menu[data-screen='recovery'] [data-mobile-ui-id='recovery-retry']{grid-column:1/-1;justify-self:center;min-width:160px}
html[data-touch-device='true'] .game-stage.is-hud [data-ui-id='hud-grenade'],html[data-touch-device='true'] .game-stage.is-hud [data-ui-id='hud-dash'],html[data-touch-device='true'] .game-stage.is-hud [data-ui-id='hud-grenade-text'],html[data-touch-device='true'] .game-stage.is-hud [data-ui-id='hud-dash-text'],html[data-touch-device='true'] .game-stage.is-hud [data-ui-id='hud-ammo-hint'],html[data-touch-device='true'] .game-stage.is-hud [data-ui-id='hud-pause'],html[data-touch-device='true'] .game-stage.is-hud [data-ui-id='hud-kills'],html[data-touch-device='true'] .game-stage.is-hud [data-ui-id='hud-build'],html[data-touch-device='true'] .game-stage.is-hud [data-ui-id='hud-xp-label'],html[data-touch-device='true'] .game-stage.is-hud [data-ui-id='hud-xp-bar']{display:none}
html[data-touch-device='true'] .game-stage.is-hud [data-ui-id='hud-weapon']{top:150px!important;left:26px!important}
html[data-touch-device='true'] .game-stage.is-hud [data-ui-id='hud-toast']{top:280px!important;left:26px!important;width:680px!important;height:45px!important}
html[data-touch-device='true'] .game-stage.is-hud [data-ui-id='hud-toast'] .ui-text{justify-content:flex-start;text-align:left}
html[data-touch-device='true'] .game-stage.is-hud [data-ui-id='hud-health-label'] .ui-text,html[data-touch-device='true'] .game-stage.is-hud [data-ui-id='hud-mission'] .ui-text,html[data-touch-device='true'] .game-stage.is-hud [data-ui-id='hud-objective'] .ui-text,html[data-touch-device='true'] .game-stage.is-hud [data-ui-id='hud-weapon-name'] .ui-text,html[data-touch-device='true'] .game-stage.is-hud [data-ui-id='hud-ammo'] .ui-text,html[data-touch-device='true'] .game-stage.is-hud [data-ui-id='hud-toast'] .ui-text{font-size:var(--hud-primary-font,32px)!important}
html[data-touch-device='true'] .game-stage.is-hud [data-ui-id='wallet-value'] .ui-text{font-size:var(--hud-secondary-font,29px)!important}
.game-stage.is-hud [data-ui-id='hud-objective'] .ui-text{color:#f9e9c2!important;font-weight:800;text-shadow:0 2px 4px #000,0 0 8px #000}
.game-stage.is-hud [data-ui-id='hud-toast'] .ui-text{color:#acc7cd!important}
.game-stage.is-hud.echo-active [data-ui-id='hud-toast'] .ui-text,.game-stage.is-hud.echo-ready [data-ui-id='hud-toast'] .ui-text{color:#d7efef!important;font-weight:700}
.game-stage.is-hud.boss-active [data-ui-id='hud-xp-bar'],.game-stage.is-hud.boss-active [data-ui-id='hud-xp-label'],.game-stage.is-hud.boss-active [data-ui-id='hud-build']{visibility:hidden}
.has-responsive-art{isolation:isolate}.responsive-ui-art{position:absolute;pointer-events:none;z-index:-1;max-width:none}.controls-panel.has-responsive-art{position:relative}.mobile-game-menu.has-responsive-art>.responsive-ui-art{position:fixed}
.mobile-menu-card>[data-mobile-ui-id$='-title'],.mobile-menu-card>[data-mobile-ui-id$='-name']{font-size:18px;color:#ffcf69}
html[data-touch-device='true'] #gameStage.has-mobile-menu-root,.mobile-game-menu{touch-action:pan-y}
.game-stage [data-ui-id='end-stats'] .ui-text,.game-stage [data-ui-id='final-stats'] .ui-text,.game-stage [data-ui-id='level-complete-stats'] .ui-text{white-space:pre-line;line-height:1.5}
.game-stage [data-ui-id='tutorial-note'] .ui-text,.mobile-menu-content>[data-mobile-ui-id='tutorial-note']{white-space:pre-line}
.mobile-menu-content>[data-mobile-ui-id='end-stats'],.mobile-menu-content>[data-mobile-ui-id='final-stats'],.mobile-menu-content>[data-mobile-ui-id='level-complete-stats']{white-space:pre-line}


.game-stage [data-ui-id^='contract-card-'][data-ui-id$='-record'] .ui-text{white-space:pre-line}
.game-stage [data-ui-id^='upgrade-card-'][data-ui-id$='-tag'] .ui-text{white-space:pre-line;line-height:1.25}
.mobile-game-menu[data-screen='upgrade'] [data-mobile-ui-id$='-tag']{white-space:pre-line}
.mobile-game-menu[data-screen='contracts'] [data-mobile-ui-id='contract-selected'],.mobile-game-menu[data-screen='contracts'] [data-mobile-ui-id='contract-hint']{grid-column:1/-1;text-align:center;font-size:13px}
.mobile-game-menu[data-screen='contracts'] .mobile-menu-card{min-height:195px;text-align:left;cursor:pointer}
.mobile-game-menu[data-screen='contracts'] [data-mobile-ui-id$='-record']{white-space:pre-line;font-size:12px;color:#bccbcf}
.mobile-game-menu[data-screen='contracts'] [data-mobile-ui-id$='-status']{color:#ffcf69;font-size:13px;margin-top:auto}
.mobile-game-menu[data-screen^='workshop'] [data-mobile-ui-id='workshop-contracts']{grid-column:1/-1;justify-self:center}
