:root{--cream:#f7f0df;--paper:#fffaf0;--ink:#292a35;--muted:#817d73;--coral:#f17458;--coral-dark:#cf5948;--mint:#62c7a8;--mint-dark:#229b82;--yellow:#f7c95c;--blue:#62b7dd;--line:#e8dfcd;--shadow:0 18px 45px rgba(75,53,39,.12);font-family:"Noto Sans SC",system-ui,sans-serif;color:var(--ink);background:var(--cream)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;background:radial-gradient(circle at 9% -8%,#fff8e7 0 24%,transparent 45%),linear-gradient(145deg,#f8f1e4,#efe5d1);color:var(--ink)}button{font:inherit}button:focus-visible{outline:3px solid var(--blue);outline-offset:3px}.app-shell{width:min(1160px,calc(100% - 36px));margin:0 auto;padding:24px 0 28px}.app-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:38px}.brand-lockup{display:flex;gap:13px;align-items:center}.brand-sticker{width:49px;height:49px;display:grid;place-items:center;background:var(--coral);color:#fff7e6;border:3px solid var(--ink);border-radius:15px 16px 13px 17px;box-shadow:4px 4px 0 var(--ink);font:900 27px "Baloo 2",sans-serif;transform:rotate(-5deg)}.eyebrow{margin:0;color:var(--muted);font-size:10px;line-height:1;letter-spacing:.15em;font-weight:900}.eyebrow.coral{color:var(--coral-dark)}h1,h2,h3,h4,p{margin:0}h1{font:800 29px/1 "Baloo 2","Noto Sans SC",sans-serif;letter-spacing:-.04em}h2{font:900 clamp(38px,6vw,72px)/.94 "Noto Sans SC",sans-serif;letter-spacing:-.08em;margin-top:16px}h2 span{color:var(--coral)}.hero-copy{display:flex;justify-content:space-between;align-items:end;margin-bottom:23px}.hero-subtitle{color:#777269;font-size:14px;line-height:1.7;margin-top:18px;max-width:530px}.hero-badge{display:flex;flex-direction:column;align-items:flex-end;padding-bottom:6px;color:var(--coral-dark);transform:rotate(3deg)}.hero-badge strong{font:800 42px/1 "Baloo 2",sans-serif;letter-spacing:-.06em}.hero-badge span{font-size:11px;font-weight:900;letter-spacing:.13em}.header-actions{display:flex;align-items:center;gap:10px}.save-pill{display:flex;align-items:center;gap:7px;background:#e7f5e9;color:#31966f;padding:8px 11px;border-radius:99px;font-size:11px;font-weight:900}.save-pill i{display:block;width:7px;height:7px;background:#4ec58e;border-radius:50%;box-shadow:0 0 0 4px rgba(78,197,142,.16)}.icon-button{width:39px;height:39px;border:2px solid var(--ink);background:var(--paper);border-radius:13px;box-shadow:3px 3px 0 var(--ink);cursor:pointer;color:var(--ink);font-weight:900}.icon-button.is-muted{color:#b4afa2;background:#ece5d8}.game-picker{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:15px}.game-tab{position:relative;display:flex;align-items:center;text-align:left;gap:11px;min-height:75px;padding:12px 14px;background:rgba(255,250,240,.67);border:2px solid #ded3bf;border-radius:18px;cursor:pointer;transition:transform .18s,background .18s,border-color .18s,box-shadow .18s}.game-tab:hover{transform:translateY(-2px)}.game-tab.is-active{background:var(--paper);border-color:var(--ink);box-shadow:5px 5px 0 var(--ink)}.tab-emoji{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:#fde6c5;font-size:22px}.game-tab:nth-child(2) .tab-emoji{background:#d9f1ed}.game-tab b{display:block;font-size:16px;font-weight:900}.game-tab small{display:block;color:var(--muted);font-size:11px;margin-top:2px}.game-tab em{margin-left:auto;color:var(--muted);font-style:normal;font-size:9px;font-weight:900;letter-spacing:.13em}.play-card{background:var(--paper);border:2px solid var(--ink);border-radius:25px;box-shadow:8px 9px 0 var(--ink);overflow:hidden}.game-topline{display:flex;justify-content:space-between;align-items:center;padding:19px 22px 15px;background:linear-gradient(90deg,#fffaf0,#fff2dc)}.game-title-line{display:flex;align-items:center;gap:12px}.game-title-line>span{font-size:31px}.game-title-line h3{font-size:24px;line-height:1.15;font-weight:900;margin-top:5px;letter-spacing:-.04em}.wallet{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px;font-weight:700}.wallet strong{color:var(--ink);font:800 24px/1 "Baloo 2",sans-serif}.wallet i{font-style:normal;color:var(--yellow);font-size:19px}.game-stage-wrap{position:relative;width:min(100%,570px);margin:0 auto;background:#cceae2;border-left:1px solid #b7ded4;border-right:1px solid #b7ded4;overflow:hidden}.game-stage-wrap canvas{display:block;width:100%;height:auto;touch-action:none}.stage-gloss{position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,rgba(255,255,255,.2),transparent 35%,transparent 70%,rgba(255,255,255,.12))}.floating-hint{position:absolute;left:50%;top:77%;transform:translateX(-50%);padding:9px 14px;background:rgba(255,250,240,.9);border:1px solid rgba(41,42,53,.16);border-radius:99px;box-shadow:0 5px 13px rgba(32,71,70,.12);font-size:12px;color:#4c685f;white-space:nowrap;pointer-events:none;transition:opacity .2s}.floating-hint.is-hidden{opacity:0}.stage-hud{position:absolute;left:17px;right:17px;z-index:2;pointer-events:none}.stage-hud-top{top:17px;display:flex;align-items:end;gap:12px}.stage-hud-top>div:first-child{display:flex;flex-direction:column;gap:3px}.stage-hud-top span{font-size:11px;font-weight:900;color:#426e67}.stage-hud-top strong{font:800 20px/1 "Baloo 2",sans-serif;color:#203d3d}.progress-track{height:10px;flex:1;min-width:80px;border:2px solid rgba(41,42,53,.58);background:rgba(255,250,240,.55);border-radius:99px;overflow:hidden}.progress-track i{display:block;width:0;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--mint),#95dc8b);transition:width .16s}.stage-hud-bottom{bottom:17px;display:flex;justify-content:space-between;align-items:center}.combo-chip,.mini-reward{padding:6px 10px;border-radius:99px;background:rgba(255,250,240,.9);font-size:11px;font-weight:900;color:#397b6d;box-shadow:0 3px 9px rgba(45,74,66,.1)}.combo-chip{color:var(--coral-dark)}.game-overlay{position:absolute;inset:0;z-index:4;display:grid;place-items:center;padding:25px;background:rgba(34,71,70,.13);transition:opacity .24s}.game-overlay.is-hidden{opacity:0;pointer-events:none}.overlay-card{width:min(88%,355px);padding:27px 25px 22px;text-align:center;background:rgba(255,250,240,.96);border:2px solid var(--ink);border-radius:23px;box-shadow:7px 7px 0 var(--ink);animation:pop-in .36s cubic-bezier(.17,.89,.3,1.3)}.overlay-spark{display:block;color:var(--yellow);font-size:30px;line-height:.9;margin-bottom:11px;text-shadow:2px 2px 0 var(--ink)}.overlay-card h4{font-size:24px;line-height:1.2;margin-top:12px;font-weight:900;letter-spacing:-.05em}.overlay-card>p:not(.eyebrow){font-size:12px;line-height:1.7;color:#78756c;margin:11px auto 0;max-width:270px}.overlay-card>small{display:block;margin-top:15px;color:#aaa08f;font-size:10px}.play-button,.reward-button,.secondary-button{border:0;border-radius:12px;font-weight:900;cursor:pointer;transition:transform .13s,filter .13s}.play-button:hover,.reward-button:hover,.secondary-button:hover{transform:translateY(-2px);filter:brightness(1.04)}.play-button{display:block;width:100%;margin-top:20px;padding:13px 16px;background:var(--coral);color:#fffaf0;border-bottom:4px solid var(--coral-dark);font-size:14px}.play-button span,.secondary-button span{float:right;font-size:18px}.result-icon{display:block;font-size:35px;line-height:1}.result-card h4{color:var(--mint-dark)}.result-stats{display:flex;justify-content:center;gap:36px;margin:20px 0 17px}.result-stats div{display:flex;flex-direction:column;gap:4px}.result-stats span{color:var(--muted);font-size:10px}.result-stats strong{font:800 24px/1 "Baloo 2",sans-serif;color:var(--ink)}.result-actions{display:grid;grid-template-columns:1.2fr .8fr;gap:9px}.reward-button{padding:12px 10px;background:var(--yellow);color:#5a411c;border-bottom:4px solid #d49c34;font-size:11px}.secondary-button{padding:12px 10px;background:#e1f1e9;color:#287b69;border-bottom:4px solid #9bcab7;font-size:11px}.ad-note{color:#a89f8d!important}.game-footline{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 19px 15px;border-top:1px solid var(--line);background:#fffdf7}.tip-line{display:flex;gap:10px;align-items:center;min-width:0}.tip-line span{padding:4px 7px;background:#fbe9da;border-radius:6px;color:var(--coral-dark);font-size:10px;font-weight:900;white-space:nowrap}.tip-line b{color:#767167;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reset-run{padding:6px 9px;border:0;background:none;color:#a7a095;font-size:11px;cursor:pointer;white-space:nowrap}.meta-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px}.meta-card{display:flex;gap:12px;padding:17px;background:rgba(255,250,240,.76);border:1px solid #e5d9c5;border-radius:17px}.meta-icon{width:34px;height:34px;flex:none;display:grid;place-items:center;border-radius:11px;font-size:19px}.coral-bg{background:#fce2d7;color:var(--coral-dark)}.mint-bg{background:#d9f3e8;color:var(--mint-dark)}.yellow-bg{background:#fff0c0;color:#a27418}.meta-card h4{margin:7px 0 4px;font-size:14px}.meta-card p:last-child{color:#898276;font-size:11px;line-height:1.6}.prototype-note{display:flex;justify-content:space-between;align-items:center;margin-top:18px;padding:23px 25px;background:#243c3c;color:#fff7e6;border-radius:18px;box-shadow:5px 5px 0 #132b2b}.prototype-note .eyebrow{color:#99dac0}.prototype-note h3{font-size:21px;margin:9px 0 6px;letter-spacing:-.04em}.prototype-note p:last-child{max-width:650px;color:#c1d2c3;font-size:12px;line-height:1.7}.note-stamps{display:flex;gap:8px;align-self:flex-start}.note-stamps span{padding:7px 9px;border:1px solid #52776f;border-radius:99px;color:#b8e2cf;font-size:10px;font-weight:900}.app-footer{display:flex;justify-content:space-between;margin-top:22px;color:#a8a092;font-size:9px;font-weight:900;letter-spacing:.12em}@keyframes pop-in{from{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:none}}@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.04)}}@media(max-width:720px){.app-shell{width:min(100% - 22px,570px);padding-top:14px}.app-header{margin-bottom:27px}.eyebrow{font-size:8px}.brand-sticker{width:42px;height:42px;font-size:23px;border-radius:12px;box-shadow:3px 3px 0 var(--ink)}h1{font-size:24px}.save-pill{display:none}.hero-copy{align-items:start;gap:10px}.hero-copy h2{font-size:38px;margin-top:12px}.hero-subtitle{font-size:12px;margin-top:12px;line-height:1.55}.hero-badge{display:none}.game-picker{gap:8px}.game-tab{min-height:68px;padding:10px 9px;gap:7px;border-radius:14px}.tab-emoji{width:32px;height:32px;font-size:18px;border-radius:9px}.game-tab b{font-size:12px}.game-tab small{font-size:9px;white-space:nowrap}.game-tab em{display:none}.play-card{border-radius:19px;box-shadow:5px 6px 0 var(--ink)}.game-topline{padding:14px 14px 11px}.game-title-line{gap:8px}.game-title-line>span{font-size:24px}.game-title-line h3{font-size:19px}.wallet{font-size:9px;gap:4px}.wallet strong{font-size:20px}.wallet i{font-size:14px}.game-stage-wrap{width:100%}.floating-hint{font-size:10px;padding:8px 11px}.stage-hud{left:12px;right:12px}.stage-hud-top{top:12px}.stage-hud-top strong{font-size:17px}.stage-hud-bottom{bottom:12px}.meta-grid{grid-template-columns:1fr;gap:8px;margin-top:12px}.meta-card{padding:13px}.meta-card h4{margin-top:5px}.prototype-note{padding:18px;display:block}.prototype-note h3{font-size:18px}.note-stamps{margin-top:14px}.app-footer{font-size:8px}.app-footer span:last-child{display:none}.overlay-card{padding:23px 18px 18px}.overlay-card h4{font-size:21px}.result-actions{grid-template-columns:1fr}.stage-hud-top{gap:8px}.progress-track{min-width:65px}}
@media(min-width:721px){.game-stage-wrap{border-radius:0 0 3px 3px}.game-stage-wrap canvas{max-height:720px;object-fit:contain;background:#cceae2}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
.is-hidden{display:none!important}

/* Zombie House shell */
:root{--bg:#0b1418;--panel:#15252a;--panel2:#1b3033;--line:#38565a;--cream:#e7e4cf;--muted:#91a59d;--gold:#e5a65f;--green:#b9d96c;--red:#d85c54}
html,body{min-height:100%;background:radial-gradient(circle at 50% 0,#1b3235 0,#0b1418 55%);color:var(--cream);font-family:Arial,"Noto Sans SC",sans-serif}
button{font:inherit}
.game-shell{width:min(1440px,100%);margin:0 auto;padding:18px 20px 24px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:14px}.brand{display:flex;align-items:center;gap:10px}.brand-mark{display:grid;place-items:center;width:42px;height:42px;background:#273e42;border:1px solid var(--gold);color:var(--gold);font-weight:900;letter-spacing:.1em}.eyebrow{margin:0;color:#6f8780;font-size:9px;letter-spacing:.12em}.brand h1{margin:4px 0 0;color:#f1d8a5;font:900 19px/1 Impact,Arial,sans-serif;letter-spacing:.08em}.brand h1 span{color:var(--green);font-size:12px}.run-meta{display:flex;align-items:center;gap:16px}.run-meta>div{display:flex;flex-direction:column;gap:3px;text-align:right}.run-meta small{color:var(--muted);font-size:8px}.run-meta b{color:var(--gold);font-size:15px}.run-meta button,.panel-footer button{border:1px solid var(--line);background:var(--panel);color:var(--gold);padding:7px 10px;cursor:pointer}
.play-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:14px;align-items:start}.arena{position:relative;overflow:hidden;border:1px solid #3a5c5f;background:#17252a;min-height:0}.arena canvas{display:block;width:100%;height:auto;background:#121f23}.vignette{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 35%,rgba(1,5,7,.45) 100%)}.damage-overlay{position:absolute;inset:0;pointer-events:none;background:rgba(214,55,48,.3);opacity:0}.damage-overlay.hit{opacity:1;animation:damageFlash .25s}.crosshair{position:absolute;width:18px;height:18px;margin:-9px;border:1px solid rgba(244,230,172,.9);border-radius:50%;pointer-events:none;z-index:4}.crosshair:before,.crosshair:after{content:"";position:absolute;background:#f4e6ae}.crosshair:before{width:28px;height:1px;left:-6px;top:8px}.crosshair:after{width:1px;height:28px;left:8px;top:-6px}.hud{position:absolute;z-index:3;pointer-events:none}.hud-left{top:16px;left:16px;width:190px}.hud-right{top:16px;right:16px;display:flex;gap:7px;align-items:flex-start}.hud-center{top:15px;left:50%;width:min(460px,60%);transform:translateX(-50%);text-align:center}.agent-line{display:flex;gap:8px;align-items:center}.agent-badge{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--gold);color:var(--gold);font-weight:900}.agent-line span{display:block;color:var(--muted);font-size:8px}.agent-line b{display:block;color:#f0dbad;font-size:11px;margin-top:2px}.bar-label{display:flex;justify-content:space-between;margin-top:12px;color:var(--muted);font-size:8px}.bar{height:8px;margin-top:4px;border:1px solid #345357;background:#0d1b20}.bar i{display:block;width:100%;height:100%;background:linear-gradient(90deg,#be544d,#e49a58)}.armor-bar{height:7px;margin-top:5px;border:1px solid #345357;background:#13282d;opacity:.65}.armor-bar span{display:block;position:absolute;margin-top:8px;color:#8db3b9;font-size:7px}.armor-bar i{display:block;width:0;height:100%}.loadout{display:flex;gap:8px;align-items:center;margin-top:12px;color:var(--gold)}.loadout b{font-size:14px}.loadout small{display:block;color:#a9b7a9;font-size:8px;margin-top:2px}.ammo-icon{color:var(--green);font-size:12px}.score-box{min-width:48px;padding:6px 7px;background:rgba(14,30,32,.84);border:1px solid var(--line);text-align:center}.score-box span{display:block;color:var(--muted);font-size:8px}.score-box b{display:block;color:var(--gold);font-size:16px;margin-top:2px}.objective{padding:6px 10px;background:rgba(13,29,31,.76);border:1px solid rgba(107,145,134,.5)}.objective small{display:block;color:var(--muted);font-size:8px}.objective b{display:block;color:#f2dfb4;font-size:11px;margin-top:3px}.danger-meter{height:4px;margin-top:5px;background:#23373a}.danger-meter i{display:block;width:0;height:100%;background:var(--red)}.toast-layer{position:absolute;z-index:20;left:50%;bottom:15%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:5px;pointer-events:none}.toast{padding:7px 10px;border:1px solid #d7a466;background:rgba(16,31,32,.94);color:#f2ddb4;font-size:10px;white-space:nowrap;animation:toastIn .18s}.mini-map{width:84px;height:56px;border:1px solid var(--line);background:rgba(12,27,30,.72)}
.side-panel{display:flex;flex-direction:column;gap:10px}.panel-kicker,.shop-head,.weapon-head,.shop-section-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.panel-kicker{color:var(--muted);font-size:9px;letter-spacing:.1em}.panel-kicker b{color:var(--green)}.weapon-card,.shop-card,.map-card,.enemy-card{padding:12px;background:rgba(18,38,40,.92);border:1px solid var(--line)}.weapon-head{color:var(--muted);font-size:9px}.weapon-head b{color:var(--green)}.weapon-card h3{margin:10px 0 4px;color:#f1d8a5;font-size:18px}.weapon-card p{color:#a5b6a8;font-size:9px;line-height:1.45}.weapon-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-top:10px}.weapon-stats div{padding:6px 4px;background:#203a3b;text-align:center}.weapon-stats span{display:block;color:var(--muted);font-size:7px}.weapon-stats b{display:block;color:var(--gold);font-size:12px;margin-top:3px}.weapon-card>button{width:100%;margin-top:8px;padding:7px;border:1px solid var(--gold);background:#4c3d2f;color:#f2ddb4;cursor:pointer}.shop-head span,.shop-section-head b{color:#f1d8a5;font-size:12px}.shop-head b,.shop-section-head small{color:var(--green);font-size:9px}.shop-item{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid rgba(56,86,90,.6)}.shop-item:last-child{border-bottom:0}.shop-item b{display:block;color:#e1e9d0;font-size:10px}.shop-item small{display:block;color:#8fa49a;font-size:8px;margin-top:3px}.shop-item button{padding:6px 7px;border:1px solid #5a7a70;background:#2c4f47;color:#d9efc3;font-size:8px;font-weight:900;cursor:pointer;white-space:nowrap}.shop-item button:disabled{opacity:.5}.map-choice{font-family:Arial,"Noto Sans SC",sans-serif}.enemy-card>div:not(.panel-kicker){display:flex;align-items:center;gap:7px;padding:6px 0;border-bottom:1px solid rgba(56,86,90,.45);font-size:9px}.enemy-card>div small{margin-left:auto;color:#809790;font-size:7px}.enemy-dot{display:block;width:8px;height:8px;border-radius:50%;background:#90b068}.enemy-dot.scutter{background:#e4b862}.enemy-dot.brute{background:#d96555}.enemy-dot.ravager{background:#bf6bd1}.enemy-dot.toxic{background:#75c985}.enemy-dot.armored{background:#7899b9}.enemy-dot.volatile{background:#df8751}.enemy-dot.hunter{background:#6171c9}.enemy-dot.titan{background:#b94e58}.enemy-dot.overlord{background:#f0b34f}.panel-footer{display:flex;justify-content:space-between;align-items:center;color:#6d857e;font-size:8px}.footer-line{margin:10px 0 0;color:#607873;font-size:8px;letter-spacing:.1em}.start-screen,.game-over{position:absolute;z-index:14;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px;background:rgba(7,17,20,.9);text-align:center}.start-screen h2,.game-over h2{margin:12px 0;color:#f1d8a5;font:900 clamp(34px,5vw,58px)/.95 Impact,Arial,sans-serif;letter-spacing:.06em}.start-screen h2 em,.game-over h2 em{color:var(--red);font-style:normal}.start-screen>p:not(.stamp),.game-over>p:not(.stamp){max-width:620px;color:#a5b6a8;font-size:11px;line-height:1.65}.stamp{color:#6f9289;font-size:9px;letter-spacing:.18em}.controls{display:flex;flex-wrap:wrap;justify-content:center;gap:7px;margin:16px 0}.controls span{padding:6px 8px;background:#1d3537;border:1px solid #365a5b;color:#9bb0a5;font-size:8px}.controls b{color:var(--gold)}.primary-button,.secondary-button{padding:10px 13px;border:1px solid var(--gold);background:#a15345;color:#fff0d0;font-size:10px;font-weight:900;cursor:pointer}.secondary-button{background:#213d3b;color:var(--green);border-color:#547c7c}.start-loadout-actions{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.summary{display:flex;justify-content:center;gap:22px;margin:18px 0}.summary div{display:flex;flex-direction:column;gap:4px}.summary span{color:var(--muted);font-size:8px}.summary b{color:var(--gold);font-size:20px}.game-over{overflow:auto;justify-content:flex-start;padding-top:36px}.orientation-hint{display:none}.revive-panel{display:none}
@keyframes damageFlash{50%{opacity:1}}@keyframes toastIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (max-width:980px){.game-shell{padding:8px}.topbar{margin-bottom:8px}.play-layout{grid-template-columns:1fr}.side-panel{display:none}.arena{width:100%;aspect-ratio:16/9}.arena canvas{height:100%;object-fit:cover}.topbar{display:none}.start-screen,.game-over{font-size:11px}.hud-left{top:12px;left:12px;transform:scale(.9);transform-origin:top left}.hud-right{top:12px;right:12px;transform:scale(.88);transform-origin:top right}.hud-center{top:10px}.game-over{padding:20px 8%;}.summary{margin:10px 0}}
