:root{font-family:Noto Sans SC,PingFang SC,Hiragino Sans GB,Microsoft YaHei,system-ui,sans-serif;color-scheme:dark;color:#f5e9d5;background:#14120f;-webkit-tap-highlight-color:transparent}*{box-sizing:border-box}html,body{margin:0;min-height:100%;overscroll-behavior:none}body{background:radial-gradient(1200px 700px at 50% -10%,#3a2a1c,#14120f00 60%),#14120f}button{font:inherit;touch-action:manipulation}.game-page{min-height:100dvh;display:flex;justify-content:center;align-items:flex-start;padding:0}.game-stage{margin:auto;position:relative;width:min(100vw,calc(100dvh * 480 / 853),520px);aspect-ratio:480 / 853;max-height:100dvh;overflow:hidden;background:#2b2721;touch-action:none;-webkit-user-select:none;user-select:none}.game-canvas{display:block;width:100%;height:100%;touch-action:none}@media(min-width:640px){.game-stage{border-radius:20px;border:2px solid #453b30;box-shadow:0 24px 60px #0000008c}}.hud{position:absolute;inset:0;display:flex;flex-direction:column;gap:6px;padding:calc(10px + env(safe-area-inset-top)) 12px 10px;pointer-events:none;font-size:12px}.hud-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.hud-level{padding:4px 12px;border-radius:999px;background:#12100da8;border:2px solid rgba(255,209,102,.4);color:#ffe9a8;font-weight:800;font-size:13px;letter-spacing:.5px}.hud-level-total{margin-left:4px;color:#a89a85;font-weight:600;font-size:11px}.hud-actions{display:flex;gap:6px;pointer-events:auto}.icon-btn{min-width:40px;height:34px;padding:0 10px;border-radius:10px;border:2px solid rgba(255,224,102,.28);background:#12100da8;color:#ffe9a8;font-size:13px;font-weight:700;cursor:pointer}.icon-btn:active{transform:scale(.96)}.hud-progress{height:7px;border-radius:999px;background:#00000080;overflow:hidden;border:1px solid rgba(255,255,255,.08)}.hud-progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#6ee07a,#ffe066);transition:width .12s linear}.hud-bars{display:grid;gap:4px;width:min(64%,230px)}.bar{position:relative;height:18px;border-radius:999px;background:#0000008c;border:2px solid rgba(0,0,0,.45);overflow:hidden}.bar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#6ee07a,#b8f06b);transition:width .12s ease-out}.bar-critical .bar-fill{background:linear-gradient(90deg,#ff6b5b,#ffb638)}.bar-shield{height:13px}.bar-shield .bar-fill{background:linear-gradient(90deg,#4fc4f5,#9ce4ff)}.bar-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.85)}.weapon-row{display:flex;align-items:center;gap:6px;margin-top:2px;color:#ffe9a8;font-size:11px;text-shadow:0 1px 2px rgba(0,0,0,.85)}.weapon-name{font-weight:700}.weapon-dots{display:inline-flex;gap:3px}.dot{width:6px;height:6px;border-radius:50%;background:#ffffff47}.dot-on{background:#ffb638}.weapon-kills{color:#cbbca6}.target-hud{font-size:11px;color:#d8c8ad;background:#12100d80;padding:4px 10px;border-radius:8px;align-self:flex-start}.boss-hud{display:grid;gap:3px;padding:6px 10px;border-radius:10px;background:#2e0c0c9e;border:1px solid rgba(255,107,91,.5)}.boss-title{display:flex;align-items:baseline;gap:8px;color:#ffd7cd;font-size:11px}.boss-title strong{font-size:13px;color:#ffe9e2}.boss-bar{height:12px;border-radius:999px;background:#0009;overflow:hidden}.boss-bar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#ff6b5b,#ff9f43);transition:width .1s linear}.hud-tip{margin-top:2px;padding:8px 12px;border-radius:10px;background:#12100db8;border:1px solid rgba(255,224,102,.28);color:#ffe9a8;font-size:12px;line-height:1.4}.result-layer{position:absolute;inset:0;display:grid;place-items:center;padding:18px;background:#0c0a09d1;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.result-art{display:block;height:58px;width:auto;margin:-4px auto 6px;filter:drop-shadow(0 6px 8px rgba(0,0,0,.5))}.result-art-clear{transform:rotate(-90deg)}.result-art-dead{transform:rotate(90deg);opacity:.9}.result-card{width:100%;max-width:340px;padding:20px;border-radius:20px;border:3px solid #8a7a63;background:#241f1a;box-shadow:0 20px 44px #0009}.result-win{border-color:#6ee07a}.result-lose{border-color:#ff6b5b}.result-kicker{margin:0;font-size:11px;letter-spacing:2px;color:#a89a85}.result-card h2{margin:6px 0 14px;font-size:24px}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 16px;padding:10px;border-radius:12px;background:#ffffff0a}.result-stats dt{font-size:10px;color:#a89a85}.result-stats dd{margin:2px 0 0;font-size:13px;font-weight:700;color:#ffe9a8}.result-actions{display:grid;gap:8px}.result-note{margin:12px 0 0;font-size:12px;color:#6ee07a}.btn{min-height:46px;padding:12px 16px;border-radius:12px;border:2px solid #4a4238;background:#2f2822;color:#f5e9d5;font-size:15px;font-weight:700;cursor:pointer;transition:transform .08s ease,background .15s ease}.btn:hover:not(:disabled){background:#3a322a}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn:active{transform:scale(.98)}.btn:focus-visible,.icon-btn:focus-visible,.level-cell:focus-visible,summary:focus-visible{outline:3px solid #ffe066;outline-offset:2px}.btn-primary{border-color:#8a5a10;background:linear-gradient(180deg,#ffc247,#f08a1e);color:#2a1a06;box-shadow:0 6px #8a5a10}.btn-primary:hover{background:linear-gradient(180deg,#ffcf68,#f79a2c)}.btn-primary:active{transform:translateY(2px);box-shadow:0 4px #8a5a10}.btn-ghost{background:transparent;border-color:#453b30;color:#cfc3b0}.btn-lg{min-height:54px;font-size:17px}.btn-sm{min-height:38px;padding:8px 12px;font-size:13px}.menu{width:100%;max-width:520px;margin:0 auto;min-height:100dvh;background:radial-gradient(120% 46% at 50% 0%,#ff96461f,#0b090800 62%);padding:22px 18px calc(30px + env(safe-area-inset-bottom));display:grid;gap:16px;align-content:start}.home{width:100%;max-width:520px;min-height:100dvh;margin:0 auto;display:flex;flex-direction:column;background:linear-gradient(180deg,#0b0908,#13100d 55%,#0b0908)}.home-hero{position:relative;flex:0 0 auto;min-height:min(56dvh,430px);padding:calc(24px + env(safe-area-inset-top)) 22px 20px;display:flex;flex-direction:column;justify-content:flex-start;overflow:hidden;isolation:isolate;border-bottom:1px solid rgba(255,190,120,.12);box-shadow:inset 0 -60px 80px -40px #000000e6}.home-sky,.home-sun,.home-skyline,.home-road,.home-haze,.home-actors,.home-dust,.home-grain{position:absolute;pointer-events:none}.home-sky{inset:0;background:radial-gradient(90% 60% at 72% 18%,#ffa85480,#ff783c00 62%),linear-gradient(180deg,#1a1524,#3d2130 30%,#6a3524 52%,#a9522a 70%,#d8763a 84%,#8a4322)}.home-sun{right:16%;top:16%;width:108px;height:108px;border-radius:50%;background:radial-gradient(circle,#ffe8b0f2,#ffa84a8c 42%,#ff783200 72%);filter:blur(2px);opacity:.9}.home-skyline{left:0;right:0}.home-skyline svg{display:block;width:100%;height:100%}.home-skyline-far{bottom:26%;height:34%;opacity:.85}.home-skyline-far svg{fill:#2a1d28}.home-skyline-near{bottom:20%;height:26%}.home-skyline-near svg{fill:#140f12}.home-road{left:0;right:0;bottom:0;height:30%;background:repeating-linear-gradient(180deg,#ffecbe57 0 14px,#0000 14px 58px) center / 6px 100% no-repeat,linear-gradient(180deg,#2a2b30,#3b3d43 40%,#4a4c53);clip-path:polygon(37% 0,63% 0,100% 100%,0 100%);opacity:.95}.home-haze{left:0;right:0;bottom:0;height:62%;background:linear-gradient(180deg,#0b090800,#0b090859 38%,#0b0908d1 72%,#0b0908)}.home-actors{left:0;right:0;bottom:8%;display:flex;align-items:flex-end;justify-content:center;gap:26px}.actor{width:auto;filter:drop-shadow(0 10px 14px rgba(0,0,0,.65))}.actor-player{height:96px;transform:rotate(-90deg);animation:floaty 2.8s ease-in-out infinite}.actor-zombie{height:62px;opacity:.92;transform:rotate(90deg);animation:floaty 3.4s ease-in-out infinite}.actor-zombie-far{height:46px;opacity:.6;animation-direction:reverse}.actor-zombie-near{height:70px}@media(max-height:720px){.home-hero{min-height:40dvh;padding-top:calc(16px + env(safe-area-inset-top))}.home-title{font-size:clamp(34px,11vw,46px)}.home-sub{font-size:12px}.actor-player{height:76px}.actor-zombie{height:52px}.actor-zombie-far{height:38px}.actor-zombie-near{height:58px}}.home-dust{inset:0;overflow:hidden}.home-dust span{position:absolute;bottom:8%;width:3px;height:3px;border-radius:50%;background:#ffd6a0b3;animation-name:dust-rise;animation-timing-function:linear;animation-iteration-count:infinite;opacity:0}@keyframes floaty{0%,to{translate:0 0}50%{translate:0 -6px}}@keyframes dust-rise{0%{transform:translateY(0) scale(.6);opacity:0}20%{opacity:.7}to{transform:translateY(-190px) scale(1.15);opacity:0}}.home-grain{inset:0;background:repeating-linear-gradient(180deg,#ffffff09 0 1px,#0000 1px 3px);mix-blend-mode:overlay;opacity:.6}.home-copy{position:relative;z-index:1;text-shadow:0 2px 12px rgba(0,0,0,.6)}.home-kicker{margin:0 0 10px;font-size:11px;letter-spacing:.34em;color:#e6bb8a}.home-title{margin:0 0 12px;display:flex;gap:2px;font-size:clamp(42px,14vw,58px);line-height:.95;letter-spacing:6px;font-weight:900}.home-title span{background:linear-gradient(180deg,#fff0cd,#ffb03d 52%,#e0521c);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 0 rgba(88,30,6,.9)) drop-shadow(0 12px 22px rgba(255,110,40,.35))}.home-sub{margin:0;font-size:13px;line-height:1.75;color:#d6c3aa}.home-body{flex:1 1 auto;display:grid;gap:14px;align-content:start;padding:20px 18px calc(22px + env(safe-area-inset-bottom))}.home-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.home-stat{display:grid;gap:2px;justify-items:center;padding:10px 6px;border-radius:14px;border:1px solid rgba(255,208,140,.13);background:linear-gradient(180deg,#ffffff0e,#ffffff03)}.home-stat-value{font-size:22px;font-weight:900;color:#ffd280;line-height:1.1}.home-stat-label{font-size:11px;color:#a9977f}.home-track{display:flex;gap:3px;align-items:center}.track-tick{flex:1 1 auto;height:6px;border-radius:3px;background:#ffffff17}.track-tick.is-done{background:linear-gradient(180deg,#ffd280,#e8912f)}.track-tick.is-current{background:#ffe066bf;box-shadow:0 0 0 2px #ffe06638}.home-actions{display:grid;gap:10px}.home-play{display:flex;align-items:center;justify-content:space-between;padding-left:22px;padding-right:18px}.home-play-arrow{font-size:20px;opacity:.8}.home-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:2px}.home-hint{font-size:11px;color:#7d7264;text-align:right}@media(prefers-reduced-motion:reduce){.actor-player,.actor-zombie,.home-dust{inset:0;overflow:hidden}.home-dust span{animation:none}.home-dust{display:none}}.howto{padding:14px 16px;border-radius:14px;border:1px solid #3a332b;background:#1e1a16;color:#cfc3b0;font-size:13px}.howto summary{cursor:pointer;font-weight:700;color:#ffd166}.howto ul{margin:10px 0 0;padding-left:18px;display:grid;gap:6px;line-height:1.5}.menu-hint{font-size:11px;color:#8e8272}.menu-head{display:flex;align-items:center;gap:12px}.menu-head h2{margin:0;font-size:23px;letter-spacing:3px;color:#ffcf8a;text-shadow:0 2px 12px rgba(255,140,50,.28)}.menu-head .menu-hint{margin-left:auto}.level-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:10px}.level-cell{position:relative;display:grid;gap:1px;padding:10px 6px;border-radius:14px;border:2px solid #3f372e;background:#241f1a;color:#f5e9d5;cursor:pointer;text-align:center}.level-cell:hover:not(:disabled){border-color:#a8874f;background:#332b23;transform:translateY(-2px)}.level-cell:active:not(:disabled){transform:translateY(0)}.level-number{font-size:19px;font-weight:800}.level-icon{display:block;height:18px;width:auto;margin:3px auto 1px;opacity:.9;transform:rotate(90deg)}.level-boss{font-size:10px;color:#b3a693;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.level-locked{opacity:.4;cursor:not-allowed}.level-cleared{border-color:#5f9e6a}.level-check{position:absolute;top:3px;right:7px;font-size:11px;font-weight:800;color:#6ee07a}
